Workbench
The Workbench is the right-hand pane (⌘⌥I, or Ctrl+Alt+I). Its tool buttons sit in the title bar; pressing the active one closes the pane.
| Tool | Purpose |
|---|---|
| Terminal | Shell sessions (New terminal), and the chat’s running background commands with their stop icon |
| Changes | Review, stage and commit project edits (projects only) |
| Browser | A compact browser beside the chat, with Add page to chat (see Browser beside a chat) |
| Explorer | Browse and edit project files (projects only) |
| Canvas | Reports, mockups and previews the agent creates in this chat |
| Specialists | What each Specialist in this chat is doing; Pause, Resume or Cancel… unfinished work |
| Plans | Saved implementation plans (projects only) |
| Session | Workspace, task, context and capabilities, with Fork Task and Copy Transcript |
Canvas, Specialists, Plans and Session live under More workbench tools.
A canvas is an HTML file or a bundle directory under canvases/ in the
project, so ordinary file tools create and edit it. A script of type
text/synoec-jsx uses the bundled React and ReactDOM globals and imports
no modules, and a canvas renders in a sandbox with no network access.
Marketplace
Section titled “Marketplace”Marketplace, under New chat in the Synoec sidebar, has two tabs, Discover then Installed, and opens on Discover.
- Installed has one card per installed plug, in sections: Synoec
(GitHub, GitLab and installed plugin packages), Composio when one of its
apps is installed, and Custom MCP servers last (added by hand or from a
catalog, then Add MCP server).
- What a card holds: what its plug needs. GitHub and GitLab sign in, sign out, install their CLI and change host here. A Composio app connects or disconnects its account; Connect opens Composio’s sign-in page in your browser.
- Global switch: on, the plug is on in every chat. Off, it is on only in projects that added it from their Rack. Quick chats see global plugs only.
- Uninstall… is in every card’s ⋯ menu and asks first. Uninstalling
GitHub or GitLab keeps
gh/glab, their sign-in, and publishing. - Add MCP server, the grid’s last card, adds a server you run or reach
yourself.
- Form: pick a glyph and colour or upload an image, then name it. It runs as a Local command (command, arguments, environment) or a Remote URL (headers, with secret ones hidden).
- On save: it tests the connection, and keeps nothing on failure until you choose Save anyway.
- Its card says Added by you, or names the catalogs it came from, and has an On switch.
- Its page shows whether it connects, its tools and its last error, with Edit, Turn off and Remove….
- Values: environment and secret values go to Synoec’s credential
store, never
mcp.json. - From chat: an agent can add one with your approval (the
add-mcp-serverskill). Any keys it needs, you type on its card.
- Discover has three sections, Synoec, MCP servers and
Composio, and opens on Synoec. Search, beside the tabs, filters the
open section.
- Synoec lists GitHub and GitLab, with its own category row.
- MCP servers lists MCP servers from three sources, in this order:
Cursor’s public plugin repository, then OpenAI’s (Codex), then GitHub’s
MCP registry, keeping only servers whose repository has at least twenty
stars, most stars first. They’re read on this
computer and kept for twelve hours (ADR 0287). Only a plugin’s MCP server
is used.
- Paging: thirty cards show at a time; Show more adds thirty. GitHub’s list is read only when the cards reach it. A category shows the Cursor and Codex servers only, since GitHub’s registry has no categories.
- One card per server: a server listed more than once shows once, with a badge for each source (Cursor, Codex, GitHub). One already installed, from any source or added by hand, says Installed.
- GitHub cards show the repository’s stars, its owner and the host it reaches. Stars say how widely a server is used, not that it is safe; check the host before installing.
- Your own address: a server that runs at your company’s own address (Salesforce, NetSuite, ServiceNow, Dynatrace and others) says Your own address. Install asks for it on the card first: the full address, or the part that is yours, such as a host or environment ID.
- A card’s page: clicking a card opens the server’s page, like a Composio app’s: what it reaches (the address, or the command it runs on this computer), how it signs in, its publisher and stars, and each catalog that lists it with its licence. Its tools show once it is installed and connected.
- Install adds it as an MCP server card and opens its page, turned off until it connects. A key the server needs is typed there; a server that signs in with an account has Sign in, which opens its sign-in page in your browser and turns the server on when you come back.
- Each Profile signs in on its own (ADR 0288): a chat uses its Profile’s sign-in, so Work and Personal can use different accounts. The first Sign in is for the default Profile; once one is signed in, the server’s page lists every Profile with Sign in or Sign out.
- Some servers only sign in apps they have approved, and say so.
- Calls go straight to the host the card names; Synoec adds no relay.
- Composio lists its apps, with a row of categories (the busiest that fit, then More) and one-click Install. Composio’s own GitHub and GitLab are left out, since both are built in. Calls go through Composio’s servers.
- An app’s page: click a Composio tile (anywhere but Install), or an installed app’s name, to see what it does, how sign-in works, its tools and its triggers, with Install or Uninstall. Back returns to where you were.
- The page widens with the window, with as many cards across as fit.
- Before Composio is set up: its section asks for a Composio project
API key instead (not a
ck_Connect key). - After installing an app: it appears on Installed, starts on no project, and is used once you turn it global or add it to a project.
Settings → Composio keeps the same setup: save, replace or remove the API key, and connect or disconnect each installed app’s account. The key stays in Synoec’s credential store and is sent only to Composio.
Local AI
Section titled “Local AI”Local AI, under Marketplace, manages the Ollama you run (on this computer or another) and, on Windows, Bonsai 2, which Synoec’s own Local AI service hosts with NInfer. It appears only when the workspace has an Ollama Connection or, on Windows, Bonsai is set up or can run on this PC. See Local AI.
Thread rail
Section titled “Thread rail”While no tool pane is open, the right side of a chat shows cards for the thread, each appearing once there is something to show:
| Card | Shows |
|---|---|
| Context | How much of the model’s window the last request used, by part (messages, tools, system prompt, Skills, memory files), what was left out to fit, and how far it is until auto-compact. That distance is measured on the whole chat, not the trimmed request. A Compaction list names each attempt: Summarized, Skipped: with its cause (for example summary would cost more than it saves), or Discarded: when a summary came back unusable |
| Changes | Lines added and removed compared with the remote branch (click to open Changes), with Commit, Push and Create PR (or Create MR) buttons that ask the agent in the chat to do it. Shown only for a project with a GitHub or GitLab remote whose gh or glab is signed in |
| Plugin Rack | The plugs on for a project chat. Folded: how many are connected (installed, or for GitHub and GitLab signed in), on the title line. Open: + on the title line puts an installed plug on this project; below, each plug as a mini card with an accent-colored dot for global or a yellow one for this project. A project plug’s × takes it off. Quick chats have no Rack |
| Processes | Background commands, a command the turn waits on, and open terminals; see Drafts, queues, and steering |
| Deliverables | Files the thread wrote and canvases it presented |
| Specialists | Specialist tasks and subthreads |
| Connected tools | MCP servers and plugins the thread called |
Opening a pane replaces the rail; closing it brings the rail back. In a narrow window the chat keeps the full width.
Browser beside a chat
Section titled “Browser beside a chat”The Browser tool is the chat’s own browser, with tabs kept per project (or per workspace for Quick Chats). It is not an Agora chat; Agora’s browser works the same way.
- Open the page you want help with.
- When the agent needs the browser, a Permission needed card in the turn asks for Find browser tabs.
- Approving hands over the tab that was in view when you sent your message, plus tabs the agent opens from it. Allow session covers the rest of this chat’s session; Deny refuses and the turn carries on without it.
- While access is on, Browser access on sits under the page; Revoke takes it back.
While access is on, browsing runs without further prompts, and an accent cursor shows where the agent clicks and types, as in Agora. Purchases, sending money, card or bank details, and uploading a file from your computer still ask every time, with only Allow once and Deny. The agent reaches only the tabs beside its own chat.
Reviewing and committing changes
Section titled “Reviewing and committing changes”- Open Changes. Switch between Working and Staged, or use Filter changed files….
- Select a file to see its diff, then Stage file or Unstage file.
- Choose Review commit, check Review staged changes, write a Commit message and press Commit.
- Push sends the branch; Create pull request (or merge request) uses your signed-in
ghorglab.
Synoec never force-pushes, pushes the default branch or merges. Settings → Git holds Branches, Worktrees, Commits and Publishing preferences.
GitHub and GitLab
Section titled “GitHub and GitLab”The GitHub and GitLab cards on Marketplace show whether gh and
glab are signed in, and as whom, with the host and CLI version under it.
- Your own
ghorglabcomes first. Synoec looks on your PATH and in the usual install folders (Homebrew,/usr/local/bin,~/.local/bin). - Install appears when the CLI is missing. Synoec downloads the pinned
official release, checks its SHA-256 and puts it in
~/.synoec/runtimes/forge-cli/bin, which sits last on PATH for the app, its terminals and agent shells. The card then says “installed by Synoec”. - Sign in runs the CLI’s own browser sign-in: Synoec opens the page and shows
the one-time code to enter. The CLI keeps the token in its own store; Synoec
never reads or saves it. Afterwards plain
gitover HTTPS uses the same sign-in for that host, unless you already set a credential helper for it. - Sign out removes the CLI’s sign-in on this computer. The token stays valid on GitHub or GitLab until you revoke it there.
- Change host points a card at GitHub Enterprise or a self-hosted GitLab.
Type @git in the composer (or choose + → Connected Plugs, which lists the
plugs on for the chat) to add @github
or @gitlab to a message. The mention shows in bold accent and adds the
first-party GitHub or GitLab Skill to that message, which tells the agent
to do the work through the signed-in gh or glab: repositories, issues, pull or
merge requests, CI runs and the forge API, with the same access your account has.
Anything visible to others, such as pushing, commenting or opening a request,
still follows the Git settings and permission prompts. Delete the mention and the
Skill goes with it.
Type ! (or choose + → Lysis investigations) to reference one of this
workspace’s Lysis investigations, for example !router-firmware.
The mention shows in a second colour taken from your accent. When you send the
message, the agent is pointed at that investigation’s folder and may read,
search and inspect anything in it for that message without asking. It cannot
edit there or run commands there without asking. Backspace after the name
removes the whole mention.