Rafhael Marsigli Logo
aipim — zsh
    ▄▄█▄▄      █████╗ ██╗██████╗ ██╗███╗   ███╗
  ▀▀▀███▀▀▀   ██╔══██╗██║██╔══██╗██║████╗ ████║
     ███      ███████║██║██████╔╝██║██╔████╔██║
   ▄█████▄    ██╔══██║██║██╔═══╝ ██║██║╚██╔╝██║
  ▐███████▌   ██║  ██║██║██║     ██║██║ ╚═╝ ██║
   ▀█████▀    ╚═╝  ╚═╝╚═╝╚═╝     ╚═╝╚═╝     ╚═╝
     ▀█▀      ═════════════════════════════════
$ aipim install --ai claude-code
✓ .project/ scaffolded
✓ CLAUDE.md generated
✓ .gitattributes configured
$ aipim mcp start
→ Rebuilding SQLite...
✓ MCP server running at :3141
$ aipim task next
TASK-007 [P1-M] · Refactor auth middleware · 4h
$

AIPIM

Event-sourced project manager with MCP server. Keeps your AI sessions focused, your token budget predictable, and your project history immutable.

$ npm install -g aipim && aipim install

Works with Claude Code, Gemini CLI, and Cursor

Every AI session starts from zero

Every time you open a new session, your AI agent has no idea what you built yesterday. You paste context, re-explain conventions, re-describe the architecture. And if you lean on open-ended agent loops, the token bill compounds - the model spends context re-reading what it already did three messages ago.

In a real legacy migration: 29 tasks, each 30–100K tokens, each starting with a clean context. Some batched together, some isolated. More efficient than open-ended agent loops - and the history is immutable.

Context-Bound Tasks

AIPIM decomposes your project into tasks sized to fit a context window. One task per session, /clear between them. No context bloat, no wasted tokens re-establishing state.

  • Token budget stays predictable per task
  • Sessions stay focused and fast
  • Works better than open-ended agent loops for long projects
  • ADRs and comments captured immutably per task

Event Sourcing

All state lives in events.jsonl, an append-only log. SQLite is rebuilt from those events at startup - a read model, never the source of truth. You can rebuild everything from the log alone.

  • Immutable audit trail of all project decisions
  • git merge=union driver - no merge conflicts on concurrent pushes
  • Rebuild the database anytime by replaying events
  • Works offline - no external service required

MCP Server

A local Hono server on port 3141 exposes your project tools directly to Claude Code via JSON-RPC. No clipboard, no copy-paste, no human acting as middleware between the LLM and the filesystem.

  • get_next_task, create_task, complete_task, log_decision and more
  • Dynamic Active Skills enabled per-project via config.toml
  • database skill: read-only SQLite access for AI-powered queries
  • One command to register: claude mcp add aipim http://localhost:3141/mcp

Visual UI with Svelte 5

A full web interface served by the same Hono process. Kanban board, event timeline, and task detail panel with inline markdown editor. Real-time via SSE - move a card in one tab, all tabs update.

  • Drag-and-drop Kanban - native HTML5, no library
  • SSE live updates across all open browser tabs
  • Inline task markdown editor with comment thread
  • Event timeline with filters by type, member, and period

Own Skills

Two complementary skill layers. Context Modules inject focused coding guidelines directly into your AI instruction file. Active Skills add MCP tools dynamically per-project - no restart needed.

  • 19 built-in context modules: TypeScript, React, Laravel, Tailwind, Rust, Python and more
  • Inject with: aipim add skill typescript
  • Idempotent - running the command twice never duplicates content
  • Active skills hot-reload on the next tools/list call

Built with the same rigor it helps you apply.

238 Tests - unit + E2E covering the full CLI and MCP surface
107 KB npm tarball. Zero bloat. Ships with a compiled Svelte UI included.
19 Built-in coding skills: TypeScript, React, Laravel, Tailwind, Rust, Python and more
MIT Fully open-source, forever.
How is this different from just using Claude's built-in task tools?
AIPIM gives you explicit context boundaries. You decide when to clear and restart. Agent-driven loops are powerful but compound token usage over long sessions - the model keeps re-reading earlier context. AIPIM is the intentional alternative: bounded tasks, clean starts, immutable history.
Does it work with Gemini CLI or Cursor?
Yes. aipim install --ai gemini generates GEMINI.md. --ai cursor generates .cursorrules. The MCP server itself is editor-agnostic - any MCP-compatible client can connect.
Do I need a team to use it?
No. Solo mode works out of the box - no config.toml needed. Actor defaults to your git email. Team features (assignments, concurrent pushes, member tracking) activate when you add a config.toml.
What if I'm migrating from AIPIM 1.x?
Run aipim migrate. It reads your existing backlog/*.md and completed/*.md, synthesizes events, and rebuilds SQLite. Your original markdown files are preserved.
Is the database safe from accidental AI writes?
Yes. The database Active Skill only allows SELECT, EXPLAIN, and PRAGMA statements. A hard regex at the driver level blocks all write operations before execution - INSERT, UPDATE, DROP, ALTER, DELETE are all rejected.
What about AIPIM 3.0?
A cloud-native version is in early planning: 100% open-source, free, and MCP-first. AIPIM 2.x stays fully supported.