Skip to content

Tasks ​

A task is one agent working on one piece of work. Pond starts it in its own terminal, usually in a new git worktree.

Start a task ​

  • Click + in the sidebar, press Cmd-N while Pond is active, or use New task here on a project or worktree row.
  • From any terminal inside a repo, run pond new "fix the login bug". See the CLI reference.

The composer opens under the selected worktree. With nothing selected it opens for the project you last started a task in, or else the first project that has a worktree. The folder picker for a new project appears only when Pond has no project at all. A project that has no worktree row yet still opens the composer, with "No worktree yet" in the Where chip, and Send says so until a worktree exists. Type the task. Return starts it and Shift-Return adds a line. Esc closes the composer.

Under the text field you choose where the task runs. The Where chip lists every project that has a worktree as "<project> · new worktree", which is the default. Below that it offers From branch… and From pull request…, and "this worktree" when a worktree is selected. The next chip picks the model and effort: Opus or Sonnet, each at high or medium. It starts at "Opus · high". The third chip sets the permission mode. A "× 1" chip lets you run the task several times at once (see Several tries).

Permission mode ​

The permission chip sets how much Claude Code may do without asking: Default, Accept edits, Plan or Auto. Default passes nothing, so your own Claude Code setting still applies. Pond remembers the last mode you used in each project. From a terminal, pond new --permission-mode <mode> takes Claude Code's own names.

Bypass, which never asks before commands or edits, is off. While it is off the chip does not list it, and Pond refuses it from every way of starting a task. To get it, turn on Allow Bypass in Settings › General. A task that an agent starts can never use Bypass, and neither can a task that waits for the reset.

Start from an existing branch ​

Open the Where chip and choose From branch…. A short list shows your branches, local ones first, with a search field. Pick one and the task runs in a new worktree on that branch, with no new branch made. From a terminal: pond new "…" --from <branch>.

  • A branch that is already checked out somewhere is refused, and the list says where.
  • A branch that only exists on the remote gets a local tracking branch. Pond never fetches, so run git fetch first if the branch is new.
  • Removing the worktree later never deletes your own branch. Pond deletes only a branch it made for the task, and only when that work is safe to drop.

Start from a pull request ​

Choose From pull request… in the Where chip to see the project's open pull requests, the 8 newest, with a field that filters by title, branch, author or number. Pond asks your own gh; if gh is missing or signed out you get one quiet line instead of the list. Pick one and the task starts on that PR's branch, as for a remote-only branch above. Unlike From branch, this one does fetch: Pond looks the number up again with gh and runs git fetch for that one branch from origin. A pull request from a fork is refused for now. From a terminal: pond new "…" --from-pr <number>.

Several tries ​

The "× n" chip appears when the task starts in a new worktree. Pick 2, 3 or 4 and Pond starts the same task in that many worktrees, side by side. The composer closes as soon as the first try is running, and the others keep starting. In the sidebar the tries sit under one task line, as Try 1, Try 2 and so on.

Click the task line to open the compare card. While a try is still working, the card says how many are. Once every try has settled, it lists each try's changed files, test result and whether it is ready. Pick one and choose Keep this one…. When a try cannot be kept yet, one grey line says why (tests running, uncommitted changes, a conflict, or no passing test run), and a Run tests button appears when a test run is the way out. That opens the normal merge sheet. After the merge Pond offers to remove the other tries. A try with an agent still working, or with uncommitted changes, is kept and the sheet says why.

What Pond does ​

  1. For a new worktree, Pond runs git worktree add with a branch named pond/<slug>. The slug is up to five words from the task text, and filler words are left out. The folder is <repo>-pond/<slug>, next to the repo, so the repo's own tree stays clean and tools do not index the worktree twice.
  2. It copies .env and .env.local from the project folder into the new worktree, when they exist and git ignores them. You can add more files, and a setup command, with pond project add. See the CLI reference.
  3. It starts Claude Code in a terminal it owns, with the model and effort you chose.
  4. When Claude Code's input box shows, Pond types the task text. The text never goes on the command line.

A row appears at the top of the worktree with "Starting…", and a blob is born.

If something fails (git, a full disk, Claude Code missing), no blob is born. The composer stays open with your text and the reason in red.

Answer from the sidebar ​

When an agent waits on a permission prompt, or asks you a question, a small card shows under its row in the sidebar. You can answer there without opening its terminal.

  • A permission shows what Claude Code wants to do in one line, such as "Run: npm test", "Read: /Users/you/app/src/main.swift" or "Fetch: https://example.com/page?q=1". Click Allow or Deny. Deny tells the agent to stop and ask you what to do instead. There is no "always allow": for that, answer in the terminal.
  • When that line cannot show everything (a command with more lines, "(+2 more lines)", a line cut short, a file edit whose new text it does not show), the card offers only Deny and Open terminal. Open terminal hands the prompt back to Claude Code, which shows it in full in the agent's terminal.
  • A card takes a click only after it has stood still for a moment, so a card that appears or moves under your pointer is not clicked by accident.
  • A question shows its header, the question and its options. The option Claude recommends is the filled button. Pond offers one question with two to four options; anything else (several questions, pick-many) stays in the terminal.

The answer goes to that prompt only. If you type in the agent's terminal instead, the card goes and the terminal asks as usual. When Pond is closed, when the card cannot be shown (the sidebar is closed, the project is collapsed, or the agent is only in Pinned), or nobody clicks within 5 minutes, Claude Code asks in its terminal as it always does: Pond never answers by itself.

Stop a task ​

  • Select the agent's row in the sidebar and press Delete. Pond asks first.
  • From a terminal: pond task stop <id>. Add --close to close it too.

Past sessions ​

Past sessions… in a project's menu lists that project's earlier Claude Code sessions, newest first, each with its first prompt. A field at the top filters by words in the prompt, and Cmd-K finds the same list. Open one and choose Resume, or press Return a second time, to continue it in its own worktree. Pond runs claude --resume there and types nothing. A session whose worktree is gone cannot be resumed, and one that is still running in Pond shows a plain line instead of Resume. pond sessions lists them from a terminal.

When Pond's terminal helper stops and Pond starts it again, the sidebar shows one quiet row, "Resume n agents". Its Resume button runs claude --resume for each lost agent whose process is gone, in a new terminal in its worktree, at most once per agent per hour. Nothing is typed. If the helper keeps stopping, Pond gives up after three restarts in a minute and the agents' cards say so.

A session may still be running somewhere outside Pond. Pond cannot be sure, so a session that changed in the last three minutes, or that shows up in the process list, carries the line "May still be running elsewhere". Resuming it asks first. Return and Esc cancel, and only a click on Resume goes ahead.

Start after the reset ​

If you also run Kadans, a separate app that tracks your Claude usage, Pond reads its usage line. When Kadans is braking, Send shows a confirm line such as "Kadans brakes: you'd run out at 18:40." with Start now and Start at 01:00. A waiting task shows as a row with Start now and Cancel. It gets a blob when it starts. Start at is not offered with several tries.

Priority and urgent ​

A project's menu has Priority: High, Normal and Low. Every project starts at Normal. An agent's menu has Mark urgent, and an urgent agent shows a small grey bolt at the end of its row. Not urgent takes the mark off. A task that waits for the reset gets the same choice in its blob's menu.

Priority and urgent decide what comes first in two places. The bell in the sidebar header jumps to the agent that needs you most. When several waiting tasks reach the reset together, they all start at once, and the most important is handed off first. Urgent comes first, then the project's priority, then whatever has waited longest. So with every project at Normal and nothing urgent, the bell jumps to the oldest question, not to the first question of the project at the top of the list. A waiting task you marked urgent is still urgent once it has started. Nothing else in the sidebar moves. From a terminal, pond project add . --priority high sets a project's priority, and pond project list shows it after the path. pond refuses --priority when an agent runs it, the same check it uses for setup scripts.

Usage line ​

The sidebar footer shows how much of your Claude Code five-hour limit you have used, and how long is left, for example "34% · 2 h 10 min left". The dot beside it turns orange when Kadans is braking. Pond reads it from the status information Claude Code gives each task it starts, so no other app is needed. It stores the percentage and the reset time. For each session it also stores the context size in tokens, the model's short name and the effort level from the same status information. Pond does not show those three yet. See Your data. If you have your own status line in Claude Code, it keeps working unchanged inside Pond. The line appears after the task's first reply, and only for plans where Claude Code reports a limit. Kadans, when it runs and its file is fresh, takes priority. Only Kadans can brake: Pond's own line has no brake state, so it never asks the question above. The footer's hover text says which source it came from. A Claude Code reading older than 5 minutes is not shown, and a Kadans reading older than 15 minutes is shown as old.

Pond is not released yet. These docs describe the current build.