Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

5,791 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Codebuff

Codebuff is an open-source AI coding assistant that edits your codebase through natural language instructions. Instead of using one model for everything, it coordinates specialized agents that work together to understand your project and make precise changes.

Codebuff vs Claude Code

Codebuff beats Claude Code at 61% vs 53% on our evals across 175+ coding tasks over multiple open-source repos that simulate real-world tasks.

How it works

When you ask Codebuff to "add authentication to my API," it might invoke:

  1. A File Picker Agent to scan your codebase to understand the architecture and find relevant files
  2. A Planner Agent to plan which files need changes and in what order
  3. An Editor Agent to make precise edits
  4. A Reviewer Agent to validate changes
Codebuff Multi-Agents

This multi-agent approach gives you better context understanding, more accurate edits, and fewer errors compared to single-model tools.

CLI: Install and start coding

Install:

npm install -g codebuff

Run:

cd your-project
codebuff

Then just tell Codebuff what you want and it handles the rest:

  • "Fix the SQL injection vulnerability in user registration"
  • "Add rate limiting to all API endpoints"
  • "Refactor the database connection code for better performance"

Codebuff will find the right files, makes changes across your codebase, and runs tests to make sure nothing breaks.

Create custom agents

To get started building your own agents, start Codebuff and run the /init command:

codebuff

Then inside the CLI:

/init

This creates:

knowledge.md # Project context for Codebuff
.agents/
└── types/ # TypeScript type definitions
├── agent-definition.ts
├── tools.ts
└── util-types.ts

You can write agent definition files that give you maximum control over agent behavior.

Implement your workflows by specifying tools, which agents can be spawned, and prompts. We even have TypeScript generators for more programmatic control.

For example, here's a git-committer agent that creates git commits based on the current git state. Notice that it runs git diff and git log to analyze changes, but then hands control over to the LLM to craft a meaningful commit message and perform the actual commit.

exportdefault{id: 'git-committer',displayName: 'Git Committer',model: 'openai/gpt-5-nano',toolNames: ['read_files','run_terminal_command','end_turn'],instructionsPrompt:
'You create meaningful git commits by analyzing changes, reading relevant files for context, and crafting clear commit messages that explain the "why" behind changes.',async*handleSteps(){// Analyze what changedyield{tool: 'run_terminal_command',command: 'git diff'}yield{tool: 'run_terminal_command',command: 'git log --oneline -5'}// Stage files and create commit with good messageyield'STEP_ALL'},}

SDK: Run agents in production

Install the SDK package -- note this is different than the CLI codebuff package.

npm install @codebuff/sdk

Import the client and run agents!

import{CodebuffClient}from'@codebuff/sdk'// 1. Initialize the clientconstclient=newCodebuffClient({apiKey: 'your-api-key',cwd: '/path/to/your/project',onError: (error)=>console.error('Codebuff error:',error.message),})// 2. Do a coding task...constresult=awaitclient.run({agent: 'base',// Codebuff's base coding agentprompt: 'Add error handling to all API endpoints',handleEvent: (event)=>{console.log('Progress',event)},})// 3. Or, run a custom agent!constmyCustomAgent: AgentDefinition={id: 'greeter',displayName: 'Greeter',model: 'openai/gpt-5.1',instructionsPrompt: 'Say hello!',}awaitclient.run({agent: 'greeter',agentDefinitions: [myCustomAgent],prompt: 'My name is Bob.',customToolDefinitions: [],// Add custom tools too!handleEvent: (event)=>{console.log('Progress',event)},})

Learn more about the SDK here.

Why choose Codebuff

Custom workflows: TypeScript generators let you mix AI generation with programmatic control. Agents can spawn subagents, branch on conditions, and run multi-step processes.

Any model on OpenRouter: Unlike Claude Code which locks you into Anthropic's models, Codebuff supports any model available on OpenRouter - from Claude and GPT to specialized models like Qwen, DeepSeek, and others. Switch models for different tasks or use the latest releases without waiting for platform updates.

Reuse any published agent: Compose existing published agents to get a leg up. Codebuff agents are the new MCP!

SDK: Build Codebuff into your applications. Create custom tools, integrate with CI/CD, or embed coding assistance into your products.

Contributing to Codebuff

We ❤️ contributions from the community - whether you're fixing bugs, tweaking our agents, or improving documentation.

Want to contribute? Check out our Contributing Guide to get started.

Running Tests

To run the test suite:

cd cli
bun test

For interactive E2E testing, install tmux:

# macOS
brew install tmux
# Ubuntu/Debian
sudo apt-get install tmux
# Windows (via WSL)
wsl --install
sudo apt-get install tmux

See cli/src/tests/README.md for comprehensive testing documentation.

Some ways you can help:

  • 🐛 Fix bugs or add features
  • 🤖 Create specialized agents and publish them to the Agent Store
  • 📚 Improve documentation or write tutorials
  • 💡 Share ideas in our GitHub Issues

Get started

Install

CLI: npm install -g codebuff

SDK: npm install @codebuff/sdk

Resources

Documentation: codebuff.com/docs

Community: Discord

Issues & Ideas: GitHub Issues

Contributing: CONTRIBUTING.md - Start here to contribute!

Support: support@codebuff.com

Star History

Star History Chart

About

Generate code from the terminal!

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages