Skip to main content

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, or Only to 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 Tags preference to show conversation tag chips. Tags are off by default; when there are more tags than fit, Faheem Code shows a +N chip 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:

  1. Hover over the message.
  2. Select Branch from here.
  3. Faheem Code opens a new branched conversation.
  4. 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:

StatusMeaning
runningThe goal loop is active
completeThe judge confirmed the objective is done
cappedThe goal reached its maximum number of rounds
interruptedA 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:

  1. Open the conversation you want to export.
  2. Click the kebab menu (⋮) next to the conversation title.
  3. Select Export transcript.
  4. Choose a format and adjust the options, then click Download.

Format options

FormatFile extensionUse it when
Markdown document.mdYou want a plain-text file that renders in any Markdown viewer or editor
Self-contained HTML.htmlYou 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

OptionDefaultWhat it includes
Include tool detailsOnThe full inputs and outputs of every tool call the agent made
Include timestampsOnThe 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:

  1. Open the conversation card menu in the sidebar.
  2. Select Archive.
  3. 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:

  1. Open the panel filter menu in the sidebar.
  2. Enable Show archived.
  3. Archived conversations reappear with an Archived chip.
  4. Open an archived conversation's menu and select Unarchive to restore it to the default list.