Skip to content

Working in a task

Getting context to the agent, reading the code it wrote, and turning it into a commit — without leaving the task.

Updated View as Markdown

Most of the friction in agent-assisted work isn’t the model. It’s the shuttling: copying a file path into the prompt, pasting a diff into a chat, switching to an editor to see what a function does, writing the commit message afterwards.

A Warpforge task is built so none of that leaves the window.

Getting context into the chat

You rarely want to describe what you mean. Point at it instead.

To send… Do this
A file Type @ and search by name — or drag a row from the file tree straight into the composer
A changed file’s diff Send to chat on the file’s header in the diff view
A specific piece of code Select the lines in the editor and press ⌘L (Ctrl L) — the highlighted range goes over with its file and line numbers
Service or port-forward output Select lines in the Runtime log and press ⌘L (Ctrl L) or Add to chat — they go over as a chip with the line range and times, so the agent can read the lines around them. A failed service offers Send last failure to attach its latest output in one click
A screenshot or image Paste or drop it into the composer, on agents whose harness accepts images
Something on a running page Open it in the Browser tab and point at the element — it goes over as a picture with its text and selector

The composer also takes @ mentions ranked by relevance as you type, and slash commands where the harness provides them.

If the agent is still working when you send, your message waits its turn above the composer — and you can still change your mind: hover a waiting message to edit its text or remove it before it is sent. A removal can be undone, and both actions fall back with an Already sent notice if the agent got the message first.

Reading code, not just diffs

The editor inside a task is a real editor, not a diff viewer bolted to a file list. With a language server running it does what your IDE does:

Go to definition ⌘B or ⌘-click — jumps across files, not just within the one you’re in
Find references Everywhere a symbol is used
Rename symbol Across the project, not a find-and-replace
Hover docs Signatures and documentation without leaving the line
Completions As you type, from the language server
Diagnostics Errors and warnings inline, live
Format On demand

Missing a language server is one click, not a research project. Open a .ts, .py, or .rs file without its server installed and the editor shows an Install banner rather than silently degrading to plain highlighting. Warpforge ships install support for TypeScript/JavaScript, Rust, Go, Python, JSON, CSS, HTML, and YAML — each with its status in Settings → Language servers.

Alongside that:

  • Several files open at once on a tab strip, with syntax highlighting across the usual languages.
  • Find in Files (⌘⇧F) — every match grouped by file with a live peek at the surrounding code; Enter opens it at that line, cursor already placed.
  • Quick open (⌘P, or double-tap ⇧) — files by name, with matching source lines underneath them.
  • A real file tree with native right-click: New File, New Folder, Rename, Delete. Deletes ask first.

Searches stay inside the project — build output and dependencies don’t bury what you’re looking for — and everything resolves against the task’s own worktree, so what you edit is what the diff shows.

Previewing what you’re looking at

Not every file is best read as text, so the editor renders it instead. A preview toggle appears in the file’s header wherever there’s something to render:

File What you get
Markdown — .md, .markdown, .mdx Rendered document, or the source. Toggle between them.
HTML — .html, .htm The page, rendered and running — handy when an agent is building a prototype and you want to click it rather than read it.
SVG The image, or its markup. Read-only either way.
Images — .png, .jpg, .jpeg, .gif, .webp, .ico, .bmp Shown directly, no toggle needed.

Reviewing the change

The diff view gives you the whole spectrum between “accept everything” and “do it yourself”:

  1. Read it unified or split.
  2. Revert individual hunks in split view — the ↩ next to a changed hunk discards just that change, not the whole file.
  3. Edit inline where it’s faster to fix than to explain. ⌘S saves.
  4. Or send the file back to chat with Send to chat and let the agent fix it, now that it can see exactly what you’re looking at.
  5. Or leave review notes on the exact lines you have something to say about, and send them all at once — see below.

Review notes

Review the agent’s work the way you’d review a colleague’s: note by note, then hand it all back in one go.

  1. Hover a line in the diff, unified or split, and click the + that appears beside its line number. Press and drag along the + column to cover a range of lines.
  2. Write the note and press ⌘⏎ (Ctrl Enter) to save it, or Esc to drop it. The note sits under the lines it’s about. Add as many as you like, across as many files as you like.
  3. Press Send N notes in the strip above the diff. Every note goes to the agent as one message, each with its file and line numbers, the lines it quotes, and what you wrote. If the agent is still working, the message waits its turn and goes out when the current reply finishes.

Notes stay on the diff after you send them, marked Sent, so you can check each fix against what you asked for. Resolve the ones that are done. When some still aren’t right, Resend puts a note back in the next batch — or, once everything has been sent, the strip’s button becomes Resend N notes and sends back whatever you haven’t resolved.

When the agent rewrites the code around a note, the note follows its lines. If the lines it quoted are gone entirely, the note is marked Outdated and shows what they used to say — usually a sign the agent changed that code, so check it and resolve the note.

The strip’s note count opens a list of every note, with a link to its file — handy when a note’s file has left the diff or its lines are folded away.

On a finished workflow pipeline, the notes go to the last stage that changed the code, as they would for pull request feedback.

Text you don’t have to write

Four kinds of prose Warpforge drafts for you. In every case you’re the editor, not the author — nothing is submitted on your behalf.

What Written from
Task title The task’s first prompt — a short imperative line, so tasks are legible on the board without you naming them
Commit message The actual diff, in Conventional Commits form — not from the prompt, so it describes what changed rather than what was asked for
PR title and body The branch’s outgoing commits and their combined diff
Enhanced task prompt A rough note you wrote — Enhance rewrites it into a structured, well-specified task

Enhance is the one worth calling out: a backlog item you typed in five seconds (“fix the flaky login test, probably the timeout”) becomes a properly scoped prompt before an agent ever sees it. Bad prompts are the most common cause of bad agent output, and this is the cheapest place to fix them.

Small things that add up

None of these is a headline feature. Together they’re most of what makes a task pleasant to sit in.

The chat stays where you put it. It follows the newest message while an agent replies, and stops following only when you actually scroll up — clicking a file link or expanding a work update doesn’t count. Scroll back to the bottom and it starts following again on its own.

Notifications you can answer without switching apps. When an agent needs approval while Warpforge is in the background, the macOS notification carries Approve, Reject, and Review buttons that do exactly that — and says what it is asking for in plain language, so you can decide from the notification. They stay quiet while Warpforge is the window you’re looking at.

Steps never spin forever. A step an agent left open when its turn ended — including the Compact conversation step after /compact — shows as finished once the turn completes, and as failed if you stopped the turn. Conversations you already have are corrected when you open them.

Fork a conversation into another harness. Take a conversation up to any point and continue it with a different agent — it carries the context, the files touched, the worktree, and your uncommitted work. Useful when one model is stuck and you want another to pick up mid-thread rather than start over.

Model picking that survives long lists. The composer’s model picker has a pinned search box — type to narrow hundreds of models, Esc to close. Short lists stay simple lists. Add a provider or model in the agent itself and Warpforge picks it up on restart, or immediately via the refresh button next to that agent in Settings, which also shows how many models it currently knows about.

Claude starts in Auto mode. A new Claude task runs in Claude’s Auto permission mode instead of Manual, so routine steps go ahead without an approval each time. Want every step approved? Pick Manual under More → Mode in New Task or in the composer.

Archive or delete a task without opening it, from the overflow menu on its sidebar row.

Git, in the task

Warpforge’s git surface is closer to an IDE’s than to a commit box: an IDE-style branch tree with local and remote branches, native right-click menus, rebase-onto without checking out first, and amend that prefills the message you’re rewriting. It’s covered on its own page — see Git in Warpforge.

The shortcuts:

Action Shortcut
Commit… ⌘K
Push… ⇧⌘K
Sync with remote ⌘T
New branch… ⌥⌘N

Keyboard shortcuts

Shortcut Action
⌘N New task
⌘P / ⇧⇧ Quick open (files and text)
⌘⇧F Find in Files
⌘B / ⌘-click Go to definition
⌘L Send selection to chat
⌘S Save edits
⌘K Commit…
⇧⌘K Push…
⌘T Sync with remote
⌥⌘N New branch…
⌘+ / ⌘- / ⌘0 Text size up / down / reset
Esc Close the palette or panel you’re in

Replace ⌘ with Ctrl throughout — for example Ctrl ⇧ F for Find in Files and Ctrl L to send a selection to chat.

See also

Navigation

Type to search…

↑↓ navigate↵ selectEsc close