Getting Started

Install CodeFire, connect your API keys, and set up MCP for your AI coding CLI.

Which version? Apple Silicon Macs get the native Swift app. Windows, Linux, and Intel Macs use the Electron app.

1

Install CodeFire

Download and install the app for your platform.

macOS (Apple Silicon)

  1. 1. Download CodeFire-macOS.zip from GitHub Releases.
  2. 2. Unzip and drag CodeFire.app to your Applications folder.
  3. 3. Open CodeFire. On first launch, macOS may ask you to confirm since the app isn't signed. Go to System Settings > Privacy & Security and click "Open Anyway".

The app creates its data directory at ~/Library/Application Support/CodeFire/ and automatically deploys the MCP server binary.

2

Open Settings

Configure your API keys and preferences.

Click the gear icon in the bottom left of the sidebar, or use the menu bar CodeFire > Settings.

Settings has six tabs: General, Terminal, CodeFire Engine, Gmail, Browser, and Briefing.

3

Add your OpenRouter API key

Required for AI chat, semantic code search, and image generation.

  1. 1. Go to openrouter.ai/keys and create a new API key. Copy it.
  2. 2.
    In CodeFire Settings, go to the CodeFire Engine tab.
  3. 3. Paste your API key into the OpenRouter API Key field. It starts with sk-or-v1-...

What this unlocks: The OpenRouter key powers three features: the built-in AI Chat (ask questions about your codebase), Semantic Code Search (search by meaning, not just text), and AI Image Generation. All models are served through OpenRouter with a single key.

Optional settings on this tab:

  • Embedding model — Choose between text-embedding-3-small (faster, cheaper) or text-embedding-3-large (more accurate)
  • MCP server auto-start — Enabled by default. Automatically detects when an AI CLI connects via MCP.
  • Instruction injection — Enabled by default. Adds a managed section to your project's CLAUDE.md telling Claude Code about available CodeFire tools.
4

Connect your AI coding CLI

Install the CodeFire MCP server so your CLI has access to persistent memory and tools.

One-click install

Click the button for your CLI tool. CodeFire will automatically write the MCP config to the right file.

After installing, restart your CLI session for the connection to activate.

Manual setup

If the one-click install doesn't work, you can configure the MCP server manually.

The MCP binary is at ~/Library/Application Support/CodeFire/bin/CodeFireMCP — deployed automatically when you open CodeFire.

Claude Code Terminal command
$ claude mcp add codefire ~/Library/Application\ Support/CodeFire/bin/CodeFireMCP
Gemini CLI ~/.gemini/settings.json
{
  "mcpServers": {
    "codefire": {
      "command": "~/Library/Application Support/CodeFire/bin/CodeFireMCP",
      "args": []
    }
  }
}
Codex CLI ~/.codex/config.toml
[mcp_servers.codefire]
command = "~/Library/Application Support/CodeFire/bin/CodeFireMCP"
args = []
OpenCode opencode.json (project root)
{
  "mcpServers": {
    "codefire": {
      "type": "local",
      "command": ["~/Library/Application Support/CodeFire/bin/CodeFireMCP"]
    }
  }
}
5

Add system instructions

Teach your AI agent how to use CodeFire's tools effectively.

Each CLI has a system instruction file where you can add persistent instructions. Copy the CodeFire instructions below into the appropriate file so your agent knows how to use tasks, notes, browser automation, and more.

For detailed setup guides with platform-specific paths, see the full docs: Claude Code, Gemini CLI, Codex CLI, OpenCode

Claude Code ~/.claude/CLAUDE.md

Add the following to your ~/.claude/CLAUDE.md file (global instructions):

## CodeFire MCP

CodeFire provides persistent memory across Claude Code sessions via MCP.
Tasks, notes, and project context survive between conversations.

### Session Workflow

**Every session MUST start with:**
1. `get_current_project` — confirm which project is auto-detected
2. `list_tasks(status: "in_progress")` — resume unfinished work
3. `list_tasks(status: "todo")` — know what's queued
4. `list_notes(pinned_only: true)` — read critical context
5. Brief the user on what you found

**Every session MUST end with:**
1. Update all task statuses accurately
2. `add_task_note` on anything unfinished
3. `create_note` session summary if significant work was done

### Task Management

| Tool | Purpose |
|------|---------|
| `list_tasks` | List tasks by status (todo/in_progress/done) |
| `create_task` | Create a new task (title required) |
| `update_task` | Update status, priority, title, description, labels |
| `add_task_note` | Add progress notes to a task |
| `get_task` | Get full task details + notes |

### Notes — Institutional Memory

| Tool | Purpose |
|------|---------|
| `list_notes` | List project notes (pinned_only: true for critical) |
| `create_note` | Create a persistent note (title + markdown) |
| `update_note` | Update note content |
| `search_notes` | Full-text search across notes |

### Context Search

`context_search` — hybrid vector + keyword search across the indexed codebase.
Types filter: function, class, block, doc, commit

### Browser Automation

| Tool | Purpose |
|------|---------|
| `browser_navigate` | Open a URL |
| `browser_screenshot` | Capture current page |
| `browser_click` / `browser_type` | Interact with elements |
| `browser_console_logs` | Capture JS console output |

### Git Operations

| Tool | Purpose |
|------|---------|
| `git_status` | Check working tree state |
| `git_diff` | View changes |
| `git_log` | View commit history |
| `git_stage` | Stage files |
| `git_commit` | Create a commit |
Gemini CLI ~/.gemini/GEMINI.md

Add the following to your ~/.gemini/GEMINI.md file (global instructions):

## CodeFire MCP

CodeFire provides persistent memory across coding sessions via MCP.
Tasks, notes, and project context survive between conversations.

### Session Workflow

**Every session MUST start with:**
1. `get_current_project` — confirm which project is auto-detected
2. `list_tasks(status: "in_progress")` — resume unfinished work
3. `list_tasks(status: "todo")` — know what's queued
4. `list_notes(pinned_only: true)` — read critical context
5. Brief the user on what you found

**Every session MUST end with:**
1. Update all task statuses accurately
2. `add_task_note` on anything unfinished
3. `create_note` session summary if significant work was done

### Tools Reference

Tasks: list_tasks, create_task, update_task, add_task_note, get_task
Notes: list_notes, create_note, update_note, search_notes
Search: context_search (hybrid vector + keyword, types: function/class/block/doc/commit)
Browser: browser_navigate, browser_screenshot, browser_click, browser_type, browser_console_logs
Git: git_status, git_diff, git_log, git_stage, git_commit
Codex CLI ~/.codex/AGENTS.md

Add the following to your ~/.codex/AGENTS.md file (global instructions):

## CodeFire MCP

CodeFire provides persistent memory across coding sessions via MCP.
Tasks, notes, and project context survive between conversations.

### Session Workflow

**Every session MUST start with:**
1. `get_current_project` — confirm which project is auto-detected
2. `list_tasks(status: "in_progress")` — resume unfinished work
3. `list_tasks(status: "todo")` — know what's queued
4. `list_notes(pinned_only: true)` — read critical context
5. Brief the user on what you found

**Every session MUST end with:**
1. Update all task statuses accurately
2. `add_task_note` on anything unfinished
3. `create_note` session summary if significant work was done

### Tools Reference

Tasks: list_tasks, create_task, update_task, add_task_note, get_task
Notes: list_notes, create_note, update_note, search_notes
Search: context_search (hybrid vector + keyword, types: function/class/block/doc/commit)
Browser: browser_navigate, browser_screenshot, browser_click, browser_type, browser_console_logs
Git: git_status, git_diff, git_log, git_stage, git_commit
OpenCode ~/.config/opencode/agents/codefire.md

Create a file at ~/.config/opencode/agents/codefire.md or add to your project's AGENTS.md:

## CodeFire MCP

CodeFire provides persistent memory across coding sessions via MCP.
Tasks, notes, and project context survive between conversations.

### Session Workflow

**Every session MUST start with:**
1. `get_current_project` — confirm which project is auto-detected
2. `list_tasks(status: "in_progress")` — resume unfinished work
3. `list_tasks(status: "todo")` — know what's queued
4. `list_notes(pinned_only: true)` — read critical context
5. Brief the user on what you found

**Every session MUST end with:**
1. Update all task statuses accurately
2. `add_task_note` on anything unfinished
3. `create_note` session summary if significant work was done

### Tools Reference

Tasks: list_tasks, create_task, update_task, add_task_note, get_task
Notes: list_notes, create_note, update_note, search_notes
Search: context_search (hybrid vector + keyword, types: function/class/block/doc/commit)
Browser: browser_navigate, browser_screenshot, browser_click, browser_type, browser_console_logs
Git: git_status, git_diff, git_log, git_stage, git_commit
6

Add a project

CodeFire auto-discovers projects or you can add them manually.

Automatic discovery

When you use Claude Code in a project directory, CodeFire automatically detects it by scanning ~/.claude/projects/. Your project will appear in the sidebar within a few seconds.

Manual add

Click + Open Folder at the bottom of the sidebar and select any project directory.

7

Gmail integration (optional)

Sync emails into CodeFire and convert them to tasks.

Gmail integration requires a Google OAuth Client ID and Client Secret. You'll need to create these in the Google Cloud Console.

  1. 1. Go to Google Cloud Console > APIs & Services > Credentials.
  2. 2. Create a new OAuth 2.0 Client ID (application type: Desktop app).
  3. 3. Enable the Gmail API for your project in the API Library.
  4. 4. Copy the Client ID and Client Secret.
  5. 5. In CodeFire Settings, go to the Gmail tab and paste both values.
  6. 6. Click Add Gmail Account and authorize access in the browser window that opens.
  7. 7. Toggle Enable Gmail sync on. Adjust the sync interval as needed (default: every 5 minutes).

Whitelist rules (Swift version): You can set up whitelist rules to automatically assign incoming emails to specific project groups with priority levels. Go to the Gmail settings tab to configure patterns.

You're all set.

Open your terminal, start a Claude Code session, and your agent will have access to persistent memory, task tracking, browser automation, and semantic code search — all through MCP.