Conversations
A conversation is a single agent session on the active backend. It has its own message history, tool calls, file changes, selected agent profile, and conversation-specific plugins.
Child conversations
When an agent uses launch_child_conversation, Faheem Code can launch a child conversation on a local or Cloud target. Local children can use either an isolated worktree or the parent's shared workspace. Cloud children use the repository and branch selected for the launch.
The child remains linked to its parent, and its result is returned to the parent conversation. Faheem Code validates the launch inputs before creating the child conversation.
Conversation list controls
Use the conversation list controls to manage automation runs and visible tags:
- Choose
All,Hide, orOnlyto include, exclude, or show only automation-run conversations. You can further select individual automation names, including unnamed automations. - Pinned conversations remain visible when automation-run filtering would otherwise hide them.
- Enable the
Tagspreference to show conversation tag chips. Tags are off by default; when there are more tags than fit, Faheem Code shows a+Nchip with the remaining count.
Faheem Code omits reserved tags and raw automation IDs from the chips. LLM metadata is also hidden by default.
Follow agent activity
While an agent is running, the composer shows a live activity chip for its current unresolved action, such as reading a file or running a command. If no action-specific label is available, it shows Thinking. The chip disappears when the agent pauses or completes its work.
Handle a failed message
If a message fails to send, select Retry to send it again or Dismiss to remove the failed message bubble. Dismissing a message does not restore its text to the composer.
Inline Markdown artifact previews
When an agent creates a Markdown file, Faheem Code renders it inline as a height-limited rich preview with an internal scrollbar instead of showing only the raw file content. Select View to open the full file in the Files drawer.
Conversation overview panel
The conversation overview panel displays project context for the active conversation, including workspace information, git state, and loaded resources such as skills, MCP servers, and automations.
Toggle the overview using the info control in the conversation header. The panel peeks beside the chat area and closes when you open the Files drawer.
Unified commits drawer
From the overview panel, open the Commits drawer to see a unified view of git activity:
- The commit list shows recent commits alongside any uncommitted changes
- A header git-actions control lets you send commit, pull, push, and pull-request prompts to the agent
The Commits tab combines the commit history with uncommitted changes in a single view, so you no longer need to switch between separate Diff and Commits surfaces.
Files view
The Files tab is a focused file browser with open-file tabs and close controls. The file tree is resizable and persists its state across refreshes.
Above the file tree, the active workspace path is displayed with a copy button. Hover the truncated path to see the full value in a tooltip, then click to copy it.
Context window usage and manual compaction
Faheem Code shows a context-window meter in the composer that visualizes how much of the model's available context is in use. The meter fills as the conversation grows.
Click the meter to open the usage preview, then click "Usage" to see the full usage panel which shows token usage and provider balance details. You can manually compact the conversation to reduce context by selecting "Compact context" in the usage preview or usage panel.
Branch from a message
Use Branch from here on a message when you want to explore a different path without changing the original conversation.
Branching creates a new conversation from the selected point in the current conversation. The original conversation remains available in the sidebar.
Branching user messages
Branching from one of your own messages works like edit-and-resend:
- Hover over the message.
- Select
Branch from here. - Faheem Code opens a new branched conversation.
- The selected message appears in the composer so you can edit it before sending.
The new branch starts from the parent of that message. This lets you rewrite the prompt and continue from the earlier state.
Branching assistant messages
Branching from an assistant message creates a new conversation that includes history through that assistant response.
Use this when the agent reached a useful point and you want to try a different next step without changing the original thread.
What branching preserves
The branch keeps the relevant conversation history, agent configuration, workspace context, and backend-managed state needed to continue from the branch point.
The branch is independent after creation:
- messages you send in the branch do not modify the original conversation
- the original conversation stays in the sidebar
- branches can be branched again
- the branch gets its own conversation title
Branching vs starting fresh
Start a fresh conversation when you want no prior context.
Branch a conversation when you want the agent to remember what happened up to a specific message, but you want to test a different instruction, correction, or follow-up.
Run a goal
Use the /goal command when you want the agent to keep working until a specific objective is complete or the goal reaches its iteration limit.
/goal [--max N] <objective>
For example:
/goal --max 3 add unit tests for the parser and verify they pass
When you start a goal, Faheem Code requests a goal run from Agent Server. Agent Server runs the agent and uses a judge LLM to check whether the objective is complete after each round. If the judge finds missing work, Agent Server sends that feedback to the agent and continues until the goal is complete or the maximum number of rounds is reached.
While a goal is running, Faheem Code shows a status banner with the objective, current round, status, judge score, and any missing work. When the goal finishes, the final status appears inline in the conversation history.
Goal statuses include:
| Status | Meaning |
|---|---|
running | The goal loop is active |
complete | The judge confirmed the objective is done |
capped | The goal reached its maximum number of rounds |
interrupted | A normal user message interrupted the active goal |
Sending a normal message while a goal is running interrupts the goal and gives control back to you.
Export a transcript as Markdown or HTML
You can download any conversation as a self-contained file to share, archive, or review outside Faheem Code.
To export a transcript:
- Open the conversation you want to export.
- Click the kebab menu (⋮) next to the conversation title.
- Select Export transcript.
- Choose a format and adjust the options, then click Download.
Format options
| Format | File extension | Use it when |
|---|---|---|
| Markdown document | .md | You want a plain-text file that renders in any Markdown viewer or editor |
| Self-contained HTML | .html | You want a single file that opens formatted in any browser |
The downloaded file is named conversation-<conversation-id>.md or conversation-<conversation-id>.html.
Export options
| Option | Default | What it includes |
|---|---|---|
| Include tool details | On | The full inputs and outputs of every tool call the agent made |
| Include timestamps | On | The time of each event, inline |
Turn off either option before downloading if you want a shorter or cleaner transcript.
Privacy
The export is generated locally in your browser from the events Faheem Code already has for that conversation. No conversation data is sent to a third party to produce the file.
Archive a conversation
Archiving a conversation hides it from the sidebar list without deleting it. The conversation's full history stays on the backend, and you can unarchive it at any time.
To archive a conversation:
- Open the conversation card menu in the sidebar.
- Select
Archive. - Confirm in the dialog that appears.
The conversation disappears from the default sidebar list. An archived conversation shows an Archived chip when revealed.
To view or restore archived conversations:
- Open the panel filter menu in the sidebar.
- Enable
Show archived. - Archived conversations reappear with an
Archivedchip. - Open an archived conversation's menu and select
Unarchiveto restore it to the default list.