An agent profile defines how Geoff Code behaves: its system prompt and the set of tools it can use. The main agent you talk to runs the default profile. For substantial sub-tasks, it can delegate to a subagent — a fresh agent instance with its own context window and its own tool restrictions — and use the result without polluting the main conversation.

Why subagents

Delegation buys two things: an isolated context (the subagent starts clean and the main thread stays uncluttered) and scoped permissions (a read-only explorer can’t accidentally edit files). The trade-off is a handoff cost, so it pays off for substantial work, not for a one-line file read.

Built-in subagents

Geoff Code ships three built-in subagent profiles, each launched through the Agent tool with a subagent_type: The main agent picks the profile that fits the task. A subagent’s output is returned only to its caller (the main agent), which summarizes anything you need to see.

Behavior

  • Each subagent keeps an independent context history under its own agent ID.
  • Multiple subagents can run in parallel for independent questions.
  • Subagents use a fixed timeout; if one times out, the parent resumes it rather than starting over.
  • A subagent cannot spawn its own subagents.
You can launch a swarm of agents on a coordinated task with the /swarm command in the TUI.

Custom agent profiles

Profiles are defined in YAML. The most common pattern is to extends a built-in profile and override only what you need:
The system prompt is a Markdown template, so you can tailor tone, constraints, and output format per profile.

Skills

Give agents reusable knowledge and workflows.

Sessions

Subagent context is preserved across session resume.