Pick up exactly where you left off. Bonfire maintains a living context document across AI coding sessions—read at start, updated at end.
claude plugin marketplace add vieko/bonfire
claude plugin install bonfire@viekoProject install:
bunx opencode-bonfire installGlobal install (available in all projects):
bunx opencode-bonfire install --globalAI agents are stateless. Every conversation starts from scratch. The agent doesn't remember what you decided yesterday, why you chose that architecture, what blockers you hit, or where you left off.
You end up re-explaining context, re-making decisions, and watching your AI partner repeat the same mistakes.
Bonfire maintains a living context document—read at session start, updated at session end. Your AI picks up exactly where you left off. It's like a saved game for your work.
Claude Code:
/bonfire:start → reads context → WORK → /bonfire:end → saves context
OpenCode:
/bonfire-start → reads context → WORK → /bonfire-end → saves context
That's it. No complex setup. No external services. Just Markdown files in your repo.
| Tool | Primary Question |
|---|---|
| Issue/task trackers | "What's the work?" |
| Bonfire | "Where are we and what did we decide?" |
Bonfire complements your issue tracker. Use GitHub Issues, Linear, or any other tool for tasks. Use Bonfire for workflow context.
| Claude Code | OpenCode | What it does |
|---|---|---|
/bonfire:start |
/bonfire-start |
Read context, scaffold on first run |
/bonfire:end |
/bonfire-end |
Update context, commit changes |
/bonfire:spec <topic> |
/bonfire-spec <topic> |
Create implementation spec |
/bonfire:document <topic> |
/bonfire-document <topic> |
Document a codebase topic |
/bonfire:review |
/bonfire-review |
Find blindspots, gaps, quick wins |
/bonfire:archive |
/bonfire-archive |
Archive completed work |
/bonfire:configure |
/bonfire-configure |
Change project settings |
.bonfire/
├── index.md # Living context (the important one)
├── config.json # Your settings
├── archive/ # Completed work history
├── specs/ # Implementation specs
└── docs/ # Topic documentation
The index.md is where the magic happens. It tracks:
- Current state and branch
- Recent session summaries
- Decisions made and why
- Blockers encountered
- Next priorities
Heavy commands (spec, document, review) use subagents to avoid burning your main conversation context:
- Research runs in isolated context (fast, cheap)
- Only structured summaries return to main conversation
- Result: longer sessions without context exhaustion
This happens automatically.
When you merge a PR, Bonfire reminds you to archive completed work:
- Claude Code: Detects phrases like "merge it", "shipped", "done with X"
- OpenCode: Detects
gh pr mergecommands + same phrases as backup
Both platforms use dual detection for reliability - if one method fails, the other catches it.
First run asks you to configure:
| Setting | Options |
|---|---|
| Specs location | .bonfire/specs/ or specs/ |
| Docs location | .bonfire/docs/ or docs/ |
| Git strategy | ignore-all, hybrid, commit-all |
| Linear integration | Yes or No |
Change anytime with the configure command.
| Strategy | What's tracked | Best for |
|---|---|---|
| ignore-all | Nothing | Solo work, privacy |
| hybrid | docs/, specs/ only | Teams wanting shared docs |
| commit-all | Everything | Full transparency |
If you use Linear for issue tracking:
- Install linear-cli (
brew install schpet/tap/linear) - Authenticate:
linear auth - Enable via configure command
- Reference issues by ID:
ENG-123
Bonfire will fetch issue context on start, create issues from review findings, and mark issues Done on archive.
| Feature | Claude Code | OpenCode |
|---|---|---|
| Command prefix | /bonfire: |
/bonfire- |
| Rules file | CLAUDE.md (native) |
CLAUDE.md (via instructions) |
| Auto context on start | Via skill trigger | Via instructions config |
| Archive suggestion | Via skill trigger | Via plugin hook |
| Plugin format | Markdown only | Markdown + TypeScript |
Both platforms use CLAUDE.md for project rules and .bonfire/ for session context. You can switch between Claude Code and OpenCode freely—they share the same files.
bonfire/
├── claude/ # Claude Code plugin
│ ├── .claude-plugin/
│ ├── commands/
│ ├── agents/
│ └── skills/
├── opencode/ # OpenCode plugin
│ ├── command/
│ ├── agent/
│ ├── skill/
│ ├── plugin/
│ └── opencode.json
└── .bonfire/ # Shared context (dogfooding)
- Claude Code CLI or OpenCode
- Git repository
Optional: gh CLI for GitHub integration, linear-cli for Linear integration.
Blog post: Save Your Progress
Changelog: CHANGELOG.md
Bonfire animation by Jon Romero Ruiz.
MIT © Vieko Franetovic
