AgentStack
MCP verified MIT Self-run

Armillary

mcp-justi-armillary Β· by justi

πŸ’Ž Never forget a side project again. Scans your folders, tells you what's rotting, and which forgotten hours are worth reviving.

β€” No reviews yet
0 installs
4 views
0.0% view→install

Install

$ agentstack add mcp-justi-armillary

βœ“ scanned Β· βœ“ verified β€” works with Claude Code, Cursor, and more.

Security review

βœ“ Passed

No issues found. Passed automated security review. Β· v0.1.0 How review works β†’

  • βœ“ Prompt-injection patterns
  • βœ“ Secret / credential exfiltration
  • βœ“ Dangerous shell & filesystem operations
  • βœ“ Untrusted network calls
  • βœ“ Known-malicious package signatures

What it can access

  • βœ“ Network access No
  • βœ“ Filesystem access No
  • βœ“ Shell / process execution No
  • βœ“ Environment & secrets No
  • βœ“ Dynamic code execution No

From automated source analysis of v0.1.0. β€œUsed” means the capability is present in the source β€” more access means more to trust, not that it’s unsafe.

Are you the author of Armillary? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

armillary

> πŸ’Ž Never forget a side project again. Scans your folders, tells you what's rotting, and which forgotten hours are worth reviving. > > An armillary sphere is an ancient astronomical instrument β€” concentric rings modeling the celestial sphere, with a fixed center and orbits turning around it. You are the center, your projects orbit around you, and armillary lets you see the whole system at once.

   50-200 projects over years                    What armillary gives you
   ─────────────────────────                     ────────────────────────

   ~/Projects/                                   🧭  armillary next
     acme-dashboard/                                  "what should I work on today?"
     acme-voice-lab/    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     acme-prototype/    β”‚                   β”‚    πŸ”„  armillary context 
                        β”‚     armillary     β”‚        "where was I on this project?"
   ~/projects_prod/     β”‚                   β”‚
     acme-subscriptions/─▢│  scan + index +   │──▢ πŸ”  armillary search "needle"
     acme-side-project/ β”‚   SQLite cache    β”‚        ripgrep across all repos
                        β”‚                   β”‚
   ~/code/              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    πŸ€–  MCP server
     acme-experiments/            β”‚                   Claude Code / Cursor query your repos
     ...                        β”‚
                                β–Ό                πŸ“‹  armillary list
                     status: ACTIVE / STALLED /      terminal table, sortable
                             DORMANT / IDEA
                                                 🩺  armillary pulse
                                                     weekly changes across your portfolio

Status: Alpha. Daily-driver-ready on macOS / Linux.

See it in action

armillary start β€” the dashboard:

armillary next β€” what should I work on today?

armillary pulse β€” weekly check-in:

armillary context β€” instant re-entry:

Your AI coding agent sees the same data through MCP β€” ask Claude Code "what should I work on?" and it calls armillary_next under the hood.

What is this?

armillary is total recall for prolific builders β€” solo developers and creators who accumulate dozens to hundreds of projects over years. Not a dashboard for 5 active projects β€” a memory layer for your entire codebase history.

The daily loop:

armillary next      β†’ "what should I work on?"
armillary context   β†’ "where was I on this project?"
armillary search    β†’ "where is this code across all my repos?"

Your AI coding agent (Claude Code, Cursor) gets the same data automatically via MCP β€” no extra commands needed.

Features

  • Auto-discovers every project in your umbrella folders (git repos + idea folders)
  • Tracks metadata β€” status, branch, commits, work hours, dirty files, README, ADRs, notes
  • Recommends what to work on β€” momentum, zombies, forgotten gold (next)
  • Restores context β€” branch, dirty files, recent commits in sub-second (context)
  • Weekly pulse β€” what changed, what went dormant, what's waiting (pulse)
  • Activity heatmap β€” 12-month contribution view, exportable as a shareable HTML card (card)
  • Searches across ALL projects with ripgrep
  • Revive β€” keeps AI agents oriented in long Claude Code sessions via context-revive briefs, with scaffold + copy-prompt actions in the dashboard detail page; armillary_revive MCP tool also pulls up to three quoted code blocks from your other repos so the agent can reuse what you've already written (requires the revive CLI on PATH)
  • MCP server β€” your AI agent knows your full project history
  • Launches projects into Cursor, VS Code, Zed, Claude Code, terminal, Finder

Non-goals

armillary is not:

  • A git GUI β€” use Sourcetree / Fork for that
  • An IDE β€” Claude Code / Cursor / Zed already cover that
  • A monitoring tool β€” use UptimeRobot / Sentry for that
  • A cloud service β€” everything stays local, offline-first

Prerequisites

  • Python 3.11+ (managed by uv)
  • Git β€” armillary reads repo metadata through GitPython
  • ripgrep β€” the search backend (brew install ripgrep)

Installation

Not yet published to PyPI. To run from source:

git clone git@github.com:justi/armillary.git
cd armillary
uv sync
.venv/bin/armillary --help

Quick start

# 1. First-run setup: scans ~/ for umbrella folders, runs initial scan,
#    detects Claude Code, configures MCP server.
armillary config --init

# 2. What should I work on today?
armillary next

# 3. Where was I on this project?
armillary context my-project

# 4. Browse β€” dashboard auto-scans on start.
armillary start

Commands

| Command | What it does | |---|---| | armillary next | What should I work on today? Momentum, zombies, forgotten gold | | armillary context | Where was I? Branch, dirty files, recent commits β€” sub-second | | armillary pulse | Weekly pulse β€” what you worked on, what went dormant, what's waiting | | armillary search "" | ripgrep across all projects | | armillary list | Rich terminal table with --status, --type, --umbrella filters | | armillary open | Launch project in configured editor (--target cursor/vscode/zed) | | armillary archive / activate | Mark project done / restore to automatic status | | armillary exclude / include | Hide / unhide a project across all armillary output | | armillary purpose | Set or show a project's one-line purpose | | armillary share / card | Generate shareable tweet / heatmap HTML card | | armillary config --init | First-run setup: umbrella picker β†’ scan β†’ Claude Code bridge β†’ MCP | | armillary scan | Full scan of all umbrellas, persist to cache | | armillary start | Incremental scan + Streamlit dashboard | | armillary install-claude-bridge | Write compact ~/.claude/armillary/repos-index.md | | armillary mcp-serve | MCP server (stdio) for AI coding agents |

MCP server for AI coding agents

armillary exposes seven MCP tools that Claude Code / Cursor can call:

| Tool | What it does | Speed | |---|---|---| | armillary_next | What should I work on today? | instant | | armillary_context | Where was I? Branch, dirty files, recent commits | sub-second | | armillary_search | Exact code search: function names, imports, error messages |

STEAL_HITS β€” code you wrote in other repos

  • other-project/src/handler.py:42-81 β€” handle_event

``py def handle_event(payload): ... ``


**When to call it:** at the start of a session in a project the agent
hasn't seen before, especially after a long break. The cross-repo
quotes are most valuable for projects whose name token shows up in
sibling repos (test files referencing it, integration specs, a fork,
documentation that names it). For tool-style projects whose name
appears nowhere else, the section will be empty β€” that's expected,
not a bug.

**Requirements:**

- The `revive` CLI on `PATH` (`pipx install context-revive`).
- A `.revive/static.md` in the target project β€” bootstrap once with
  `revive init`, then fill it via the suggest prompt from the dashboard.
- An armillary scan that has populated the code index
  (`armillary scan` or the dashboard "Scan now" button) β€” without it,
  `STEAL_HITS` falls back to brief-only.

**Failure modes (graceful):**

- `revive` binary missing β†’ returns a one-line `revive failed: …`
  string instead of crashing the agent's tool call.
- Code index missing or built without FTS5 β†’ returns the vanilla
  brief with no `STEAL_HITS` section.
- Output over the shared MCP response budget β†’ trimmed with a
  `[truncated to fit response budget]` marker.

## Privacy

`armillary` **never sends data off-device**. Project index, metadata, cache, and config all live on your local disk.

- No telemetry, no analytics, no external calls
- All documentation uses symbolic placeholders, never real paths

## Development

```bash
uv sync --extra dev

# 450+ tests covering scanner / metadata / status / cache / config /
# launcher / search / exporter / bootstrap / CLI / MCP / next / context /
# pulse / share / heatmap / transitions / purpose / revenue / revive
.venv/bin/python -m pytest

# lint + format
.venv/bin/ruff check .
.venv/bin/ruff format --check .

CI runs pytest + ruff on Python 3.11 and 3.12.

Architecture

Key design decisions:

  • Three-interface model β€” MCP (primary, invisible) > CLI (daily decisions) > Dashboard (companion)
  • Thin Streamlit UI β€” presentation only, logic in importable services
  • Incremental scan β€” mtime compare, 1–2s vs 20+s full scan
  • SQLite cache β€” drop and rebuild, no migrations (PRAGMA user_version)
  • Sub-second context β€” all git operations local, no network
  • Response safety β€” 20k char cap, preview truncation, compact JSON

License

MIT (see [LICENSE](LICENSE))

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source β€” we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet β€” be the first.

Versions

  • v0.1.0 Imported from the upstream source.