---
hide:
  - navigation
  - toc
---

<div class="hero-section" markdown="1">

<span class="hero-tagline">Open Source · CLI Agent</span>

# Keen Code

A CLI-based minimal coding agent with lean context management and skill-driven MCP support.

<div class="hero-buttons">
<a href="about.html#install-keen-code" class="md-button md-button--primary">Get Started</a>
<a href="TOUR.html" class="md-button md-button--secondary">A Tour of Keen</a>
</div>

<br>

<div align="center">

<a href="https://www.producthunt.com/products/keen-code-a-cli-coding-agent?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-keen-code" target="_blank" rel="noopener noreferrer"><img alt="Keen Code - A context-efficient CLI coding agent built by agents | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1162542&theme=dark&t=1780593417757"></a>

</div>

</div>

<div class="section-divider"></div>

<div class="terminal-window">
  <div class="terminal-header">
    <span class="terminal-dot terminal-dot--red"></span>
    <span class="terminal-dot terminal-dot--yellow"></span>
    <span class="terminal-dot terminal-dot--green"></span>
    <span class="terminal-title">keen-code — ~/my-project</span>
  </div>
  <img class="terminal-body" src="assets/keen-demo.gif" alt="Keen Code demo" />
</div>

<div class="section-divider"></div>

<div class="feature-grid">

<a href="docs/ai-providers.html" class="feature-card">
<div class="feature-card__icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2a4 4 0 0 1 4 4v1a1 1 0 0 0 1 1h1a4 4 0 0 1 0 8h-1a1 1 0 0 0-1 1v1a4 4 0 0 1-8 0v-1a1 1 0 0 0-1-1H6a4 4 0 0 1 0-8h1a1 1 0 0 0 1-1V6a4 4 0 0 1 4-4z"/></svg>
</div>
<h3>Multi-Provider AI</h3>
<p>Swap between Gemini, OpenAI, Anthropic, DeepSeek, and more — no lock-in.</p>
</a>

<a href="docs/mcp-servers.html" class="feature-card">
<div class="feature-card__icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2"/><rect x="2" y="14" width="20" height="8" rx="2"/><circle cx="6" cy="6" r="1" fill="currentColor"/><circle cx="6" cy="18" r="1" fill="currentColor"/></svg>
</div>
<h3>MCP Support</h3>
<p>Connect any MCP server to extend the agent with external tools and data sources.</p>
</a>

<a href="docs/skills-system.html" class="feature-card">
<div class="feature-card__icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
</div>
<h3>Skills System</h3>
<p>Custom slash commands that run specialized sub-agents — review, security, refactor.</p>
</a>

<a href="docs/mcp-skills.html" class="feature-card">
<div class="feature-card__icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1.08-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1.08 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1.08 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1.08z"/></svg>
</div>
<h3>MCP Skills</h3>
<p>Skill-driven MCP servers — combine slash commands with external tool integrations.</p>
</a>

<a href="docs/tools.html" class="feature-card">
<div class="feature-card__icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>
</div>
<h3>Built-in Tools</h3>
<p>Six tools out of the box: read, write, edit, glob, grep, and bash.</p>
</a>

<a href="docs/turn-memory.html" class="feature-card">
<div class="feature-card__icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/><circle cx="12" cy="12" r="4"/></svg>
</div>
<h3>Turn Memory</h3>
<p>Lean cross-turn context — compact summaries instead of raw tool traces.</p>
</a>

</div>

<div class="section-divider"></div>

<div class="cta-section">
<p>Ready to let AI handle the boring parts?</p>
<div class="cta-links">
<a href="CONTRIBUTING.html">Contribute</a>
<a href="CHANGELOG.html">Changelog</a>
</div>
</div>
