Use
Workspace: files, search, source control, terminal and logs
Browse and edit files, search, work with Git and pull requests, or open a shell on a connected project from the private dashboard and the Chrome side panel.
On this page
Open Workspace in the dashboard. Choose a project, then a workspace, from the dropdowns at the top of that page. Source Control and the terminal are available only to the signed-in owner of that project, while the machine that holds the selected workspace is connected. Project pages still offer Open workspace, which lands on the same page.
The selector#
A workspace is a branch with a working copy of its own, in one location of the project. The selector names each one by its branch and the location that holds it, because the same branch can have a working copy in two locations and the slug alone does not say which is which.
The first entry is the project root of the default location, marked default branch: the working copy a call lands in when it names no workspace. It shows the branch that copy is really on, which is not necessarily main. Every other location that holds a copy has a root too, listed as root with the name of the location, and it opens like any other entry.
Every other entry is a workspace: a Git worktree on one of your machines, or an instance on Exeora Cloud. An instance that is still being set up is listed with its state and cannot be chosen until it is ready. One that is asleep is woken when you select it.
The views#
Workspace has six views. On a wide screen they are the icons down the left edge, with the view's list beside them and what you pick from the list open as tabs on the right: a single click opens a preview tab that the next click replaces, a double click keeps it. On a phone, and in the Chrome side panel, the same views are the bar along the bottom, the list fills the screen, and what you pick opens over it with Back. Explorer is Ctrl/Cmd+Shift+E, Search Shift+F, Source Control Shift+G.
Each view needs a CLI that can serve it. Source Control as it always was works with any CLI; the Explorer, Search, the commit history, stashes and the assistant's context need one that announces workspace-v2 and source-control-v2. A view whose machine runs an older CLI says so and names the machine, while the others keep working. Instances on Exeora Cloud are always current.
Explorer#
The files of the working copy, a folder at a time: only the root and the folders you open are listed, so a repository with a large dependency tree costs nothing until that folder is opened. Files matched by .gitignore are hidden unless you show them; .git is never listed and never touched. Files and folders carry the icons of VS Code's Material Icon Theme, by name and extension, here and in Search and Source Control. What git says about a file is drawn beside it, and on the folders above it, in the same letters Source Control uses.
A file opens in an editor with syntax colouring. Save with Ctrl/Cmd+Sor the button: the editor sends the version it read along with the new text, and a file that changed on the machine meanwhile is not overwritten; the banner offers to reload it or to overwrite anyway. Markdown files open as a page with a way back to the source, images open as pictures, and a file over a megabyte is shown but not edited. A file with changes offers its diff from the editor's toolbar.
A right click, or a long press on a touch screen, gives every row its actions: new file or folder, rename, move, duplicate, copy its path, delete. On a wide screen a row can also be dragged into a folder. Renaming or moving a tracked file uses git mv, so the rename shows as staged. Deleting is permanent on that machine: there is no trash to recover from, which the confirmation says.
Search#
Search runs on the machine that holds the workspace, across every file git would track, as you type. It can match case, whole words, or a regular expression, and be narrowed to files to include or exclude by glob. Hits are grouped by file, or under their folders, and a hit opens the file on its line. A search that stops at the limit says so.
Replace applies to one hit, one file or every hit at once, keeping the case of an all-caps or capitalised match when asked. Each file is replaced only if it is still the version that was searched; one that changed meanwhile is skipped and named. A file with unsaved edits open in the editor is never replaced under it. Replace all is withheld while the results are cut short, since it would miss what is not listed.
Source Control#
The dashboard reads Git's porcelain status from the selected workspace and presents it as a git client: the current branch in the toolbar, a commit composer, what is staged and what changed, as a list or grouped by folder. Enter in the message commits, Shift+Enterstarts a body. The one button under the message names what the situation calls for: commit what is staged, publish a branch that has no upstream, sync when the branch is both ahead and behind, pull, push, stage what changed. Everything else git can do here waits under the button's chevron: commit and push, commit and sync, amend the last commit, stage or unstage everything, discard every change, fetch, pull, push, sync, publish, stash and stash pop. An amend of a commit that is already on the upstream, and any discard, ask first.
A row's menu stages, unstages, discards, deletes an untracked file or copies its path; a folder's does the same for everything under it. The whole working tree, or everything staged, opens as one diff. On a wide screen a diff can be shown side by side. Auto refreshreads the status and the open diff again every three seconds while Source Control is on screen, and pauses while the browser tab or side panel is hidden. Turn it off to stop polling, or use Refresh for a one-off update.
Commits shows the history behind HEAD with its graph, a page at a time. A commit opens with its message and the files it changed with what each gained and lost; a file opens its diff for that commit, and the whole commit opens as one patch. Stashes are listed with a way to apply or drop each.
The branch control lists the current branch, other local branches, and remotes you can check out. Choosing a branch that is already checked out in another connected workspace switches the view to that workspace rather than running git switch in place. Type a name there to create a branch from HEAD, or delete a merged local branch.
The same control creates a workspace. Type a branch and choose Create workspace: the dialog asks where, and offers every location of the project, starting on the one you are looking at. It says what the choice will do before you confirm it. On a machine that already holds a copy it adds a worktree. On a machine that holds none it clones the repository there first, which can take a few minutes. On Exeora Cloud it starts an instance, which counts against the plan's limit. A machine that is offline cannot take a workspace until exeora connect is running on it.
Exeora invokes the installed git executable directly, without passing these actions through a shell. Fetch, pull and push use the credentials git has on that machine, and interactive credential prompts are disabled so an unattended operation fails instead of hanging. For a project connected to GitHub, git on an instance, and on a machine whose own credentials could not read the repository, asks Exeora for a short-lived token instead. Sync is a pull followed by a push; a pull that needs a choice between merging and rebasing fails with git's own words, and is made from the terminal.
For projects registered from a repository subdirectory, status, diffs, staging and destructive actions stay inside that subdirectory. A commit is refused while the Git index contains staged files outside the selected project root.
Force push, hard reset, remote branch deletion, forced local branch deletion, and exposed rebase controls are intentionally absent. Pull uses that repository's own Git configuration.
With an assistant linked in Settings, a button beside the message writes it from what is staged, and Ship changes under the chevron goes from a working tree to a pull request in one go.
Pull Request#
The pull request of the branch on screen, read with the GitHub accountconnected in Settings; the details are ontheir own page.
Web terminal#
Opening a terminal requires an explicit confirmation. It starts the machine's default shell in a real pseudo-terminal at the selected workspace's path on the machine that holds it. Open terminals belong to the dashboard as a whole: the list stays in the chrome when you leave Workspace, switch project, or reload the tab. Closing the browser detaches the dashboard; the local process keeps running until you close that terminal, the CLI disconnects, the machine is revoked, or the session reaches its idle or maximum lifetime. Reopening the dashboard reconnects to the same shell.
A terminal connection uses a one-time ticket that expires after 30 seconds and is bound to this site's origin and selected workspace. One web terminal may be open per workspace, so the project root and multiple connected workspaces can each have one. Idle sessions end after 30 minutes and every session ends after eight hours.
The terminal sits in the Workspace frame like every other view: beside the column of views on a wide screen, above the bar of views on a phone and in the side panel, so any other view is one click away while the shell keeps running.
Logs#
Logs shows the calls agents make on the selected root or workspace as they run, the wayexeora connect prints them on the machine: an arrow when a call starts, with the tool, what it is about and the client that made it, then a tick or a cross when it ends, with how long it took and the error code of a call that failed. What a call is about is the command it runs, the pattern it searches for, the path it reads or writes, or the arguments of a proxied MCP tool. Several calls can be running at once; the header counts them.
Nothing in Logs is kept. The lines go to the tabs watching at that moment and are gone when the tab closes: a tab opened later sees the calls still running, not the ones that already ended. Switching to another view and back keeps the lines that arrived meanwhile, and switching the root or workspace starts over. Watching never wakes an Exeora Cloud instance; the calls do. Like a terminal, the connection uses a one-time ticket bound to this site's origin and to the selected root or workspace, and it reconnects on its own when the network drops.
What is recorded#
Source Control mutations, every change the Explorer or a replace makes, generations by an assistant, pull request actions and terminal session openings appear in the audit stream, by name only. Exeora does not record command text, keystrokes, terminal output, file contents, diffs, search queries or commit messages. What Logs shows of a call's arguments is shown to you while you watch and written down nowhere.
Project policy#
Every view of Workspace is an owner-operated feature. None of them travels through an MCP client, so none is subject to the project's MCP command policy: a read-only project still lets its owner edit a file from the Explorer. Opening the terminal grants the same authority as opening a local shell as the user running the CLI; review the confirmation accordingly.