The workbench

Files, Git & Terminal

The panels on the right: search, diffs, commits, and a shell per Workspace.

The right rail

The narrow column on the far right opens one panel at a time, for the selected Workspace. Click the same button again to close it.

Files ⌘FThe folder’s tree and search
Git ⌘GChanges, commits, push
Terminal ⌘TYour login shell, in this folder
Task ⇧⌘TWhat this Workspace is for. See Tasks
Related agentsThe agents this one started or is waiting on. See Agents working together

Below them sit the update button (only when there is one), Remote Control (the phone, see Remote Control) and Settings.

Kumo does not edit files. Changing code is the agents’ job; these panels are for reading what they did, and for the git steps a Workspace needs.

Files

The Workspace’s tree, opened a folder at a time. Click a file to open it in a read-only file tab in the middle, with syntax highlighting. Markdown is rendered, with a Rendered / Source switch in the header; links in it open in your browser. Images show as images.

Select text in a file and a floating Cite appears; it drops @path:12-40 into the draft of the agent this board last spoke to and switches to that tab. It works in rendered markdown too, citing the lines of whatever block you selected.

Search sits at the top of the panel and does two things:

  • Names (⌘F): fuzzy, like Go to File, so fsk finds file-search-keyword.ts. Matches at the start of words and in the file name rank higher.
  • Contents (⌘⇧F): every match grouped by file, with the line. Click one and the file opens at that line, with every occurrence of the word highlighted.

Case is smart: all lowercase ignores case, any capital letter makes it exact. In a git repository the file list respects .gitignore. Esc clears the search; a second Esc leaves the box.

The crosshair in the header reveals whatever file the current tab is showing: its folders open and the row lands in the middle of the panel. Handy after finding a file through search.

Right-click a file for Add to Agent (inserts @path into an agent’s draft, with a submenu when the Workspace has several), Reveal in Finder, Copy File (the file itself, ready to paste in Finder), Copy Path and Copy Relative Path. Folders add Refresh, for files an agent wrote after you opened it.

File tabs survive switching Workspaces and restarting Kumo. Closing one never asks anything.

Git

From top to bottom: the branch; a message box with Commit and Push; STAGED; CHANGES; and COMMITS, folded by default, with a commit graph down its left side.

  • Stage and unstage: hover a file for + or −; section heads have Stage all and Unstage all. With something staged, Commit commits only that (the button says Commit 2 staged); with nothing staged, it commits everything.
  • Discard: the ↺ on an unstaged file throws away its changes (an untracked file is deleted). It takes two clicks: the first turns it into a red Discard?. Discard all is on the section head.
  • Push pushes the current branch, setting its upstream the first time.
  • Commits: right-click one to copy its hash or Revert this commit. A revert is a new commit, history is not rewritten, and Kumo refuses (and says why) if the tree is dirty or the revert conflicts.

Click a changed file to open a diff tab in the middle: the whole change against HEAD, staged and unstaged together. Unified / Split in its header switches between one column and old on the left, new on the right. Select lines and Cite sends @path:12-40 for the new file’s lines. The file name in the header opens the file itself.

What Kumo does not do, on purpose: checkout, merge, conflict resolution, force push, or staging single hunks. Ask an agent, or use the terminal.

Terminal

Your login shell ($SHELL), in this Workspace’s folder, inside the panel. It is not another tab in the middle and not a Terminal.app window.

  • Tabs: ⌘T opens another, up to nine; ⌘W closes one; ⌘1–⌘9 jumps. A tab is named after what the shell reports as its title.
  • Busy dot: a tab running something (a dev server, a test watch) carries a dot. With the panel closed, the terminal button in the rail shows how many are busy.
  • ⌘K clears, ⌘F finds, ⌘+ ⌘− ⌘0 change the font size. URLs are clickable.
  • Suggestions: as you type, commands you have run in Kumo’s terminals before float at the bottom. ⌘↑ ⌘↓ choose, ⌘⏎ fills the rest in (it does not press Enter), Esc hides them. Tab completion and ⌃R are still your shell’s.
  • Drag a file in and its path is typed at the cursor, quoted.

Sessions belong to the Workspace: closing the panel or switching to Files does not kill them. Switching between tabs replays only the recent output, so very old scrollback is gone. The shell is always dark, whatever the app theme, because half of what programs print assumes a dark background.

Terminals run in the runtime, so quitting Kumo stops them, along with whatever is running in them. Agents are different: they survive a runtime restart.

Agents can use these terminals too, but only in their own Workspace, and only the tabs you opened: kumo term lets an agent type a line into a tab, wait for it, and read the output.