🧠📚🔍 Hydration layer for agent work. Joins OTel spans, git/gh state, Claude Code sessions, and local docs context into one queryable surface (web + MCP).
  • Rust 96%
  • Python 1.2%
  • Shell 0.9%
  • Makefile 0.8%
  • Dockerfile 0.7%
  • Other 0.4%
Find a file
Kai Siren 5041759f6d
Some checks failed
mirror-to-github / mirror (push) Successful in 11s
release / release (push) Successful in 15s
release / bump-formula (push) Failing after 19s
build-publish-deploy / test (push) Successful in 3m46s
release / windows-assets (push) Failing after 1m1s
build-publish-deploy / deploy (push) Failing after 6m54s
chore(hooks): adopt agentic-os v0.11.1 hook block, regen repo-pointer skill
Bump the managed agentic-os pre-commit block from v0.6.0 to v0.11.1
(adds context-load-points, repo-pointer-skills, trufflehog, coily-trailer;
owner-agnostic closes-issue). The bump could not auto-land because the
repo-pointer-skills hook flagged generator drift in the checked-in pointer
skill.

Regenerate the pointer skill from Forgejo metadata via
agentic_os.generate_repo_pointer_skill. The generated skill name is
repo-<reponame>, so the legacy repo-recall dir (which decoded to bare
"recall" and pointed at a nonexistent ~/projects/coilysiren/recall/) is
renamed to repo-repo-recall, now pointing at the real repo path. The
repo-recall trigger is preserved for name-based routing.

pre-commit run --all-files passes clean (no --no-verify).

closes #99

Audit-log: coily://1780119247/AGPHOYA3 - coily git commit
Audit-log: coily://1780127068/AGPHPV3Q - coily git commit
Audit-log: coily://1780161326/AGPHTYRN - coily git commit
Audit-log: coily://1780161343/AGPHTYTO - coily git commit
Audit-log: coily://1780161349/AGPHTYUG - coily git commit
Audit-log: coily://1780162061/AGPHT3LD - coily ops forgejo repo view
2026-05-30 10:30:37 -07:00
.agents/skills chore(hooks): adopt agentic-os v0.11.1 hook block, regen repo-pointer skill 2026-05-30 10:30:37 -07:00
.claude lockdown: sync to coily v2.45.0 [skip ci] 2026-05-28 09:28:21 +00:00
.coily feat(deploy): add systemd --user service for Linux/WSL 2026-05-28 06:23:03 -07:00
.forgejo/workflows ci(forgejo): land Forgejo-canonical release + GitHub mirror, drop GitHub release.yml 2026-05-29 15:02:13 -07:00
.github/workflows ci(forgejo): land Forgejo-canonical release + GitHub mirror, drop GitHub release.yml 2026-05-29 15:02:13 -07:00
assets/pr-screenshots chore: bump agentic-os pre-commit rev to v0.3.0 2026-05-27 00:29:42 -07:00
deploy ci: migrate deploy to Forgejo Actions + in-cluster registry 2026-05-28 06:23:07 -07:00
docs feat(ingest): per-repo dispatch routes Forgejo-hosted repos to Forgejo REST 2026-05-27 16:46:10 -07:00
Formula chore(formula): bump to v0.45.0 [skip ci] 2026-05-28 14:04:43 +00:00
scripts test: set git identity inline on the stale-branches merge commit 2026-05-28 06:38:53 -07:00
src test: set git identity inline on the stale-branches merge commit 2026-05-28 06:38:53 -07:00
tests feat(ingest): per-repo dispatch routes Forgejo-hosted repos to Forgejo REST 2026-05-27 16:46:10 -07:00
.dockerignore demo mode phase 4: Dockerfile.demo + entrypoint + smoke harness 2026-04-27 23:12:27 -07:00
.editorconfig Initial commit — repo-recall v0.1.0 2026-04-24 03:38:00 -07:00
.gitattributes Initial commit — repo-recall v0.1.0 2026-04-24 03:38:00 -07:00
.gitignore gitignore .env; add .env with REPO_RECALL_CWD 2026-04-25 22:47:32 -07:00
.pre-commit-config.yaml chore(hooks): adopt agentic-os v0.11.1 hook block, regen repo-pointer skill 2026-05-30 10:30:37 -07:00
.trufflehog-exclude chore: remove the React frontend entirely 2026-05-27 15:18:02 -07:00
AGENTS.md feat(ingest): per-repo dispatch routes Forgejo-hosted repos to Forgejo REST 2026-05-27 16:46:10 -07:00
build.rs chore: trim 850 contiguous-comment-block violations for agentic-os v0.2.8 2026-05-25 20:39:56 -07:00
Cargo.lock strip HTML UI tier, JSON + MCP only 2026-05-17 14:40:46 -07:00
Cargo.toml feat(ingest): per-repo dispatch routes Forgejo-hosted repos to Forgejo REST 2026-05-27 16:46:10 -07:00
CLAUDE.md Initial commit — repo-recall v0.1.0 2026-04-24 03:38:00 -07:00
config.example.yaml feat(refresh): per-source refresh cadence with watermarks, closes #146 2026-05-21 05:10:36 -07:00
docker-compose.yml chore: remove the React frontend entirely 2026-05-27 15:18:02 -07:00
Dockerfile chore: remove the React frontend entirely 2026-05-27 15:18:02 -07:00
Makefile feat(deploy): add systemd --user service for Linux/WSL 2026-05-28 06:23:03 -07:00
README.md test: set git identity inline on the stale-branches merge commit 2026-05-28 06:38:53 -07:00
rustfmt.toml Initial commit — repo-recall v0.1.0 2026-04-24 03:38:00 -07:00
SECURITY.md labeled issues: single GraphQL request per refresh, closes #161 2026-05-14 18:59:22 -07:00

repo-recall

"What's the current state of every repo and agent burst on this machine, right now?"

repo-recall is a local hydration layer that joins git (commits, churn, working tree), gh (PRs, issues, deploy status), and Claude Code sessions (~/.claude/projects/) into a single queryable surface served as JSON and over MCP out of the same process.

Two questions, one HTTP call or one MCP tool call:

  • Which sessions touched this repo? ask the dashboard for a repo, get every session with it as cwd.
  • Which repos did this session touch? ask for a session, get every repo it crossed.

Local-only. Binds 127.0.0.1, cache lives in $TMPDIR. Outbound limited to GitHub REST reads for PRs, issues, and deploy status.

Surface

API + MCP service only. The Rust binary serves JSON HTTP on 127.0.0.1:7777 plus an MCP server co-running in the same process. No HTML, no web frontend. Consumers are agents (via MCP) and the luca-* skills + coily wrappers (via JSON).

Endpoint list and MCP tool inventory: docs/endpoints.md. Env vars: docs/env-vars.md.

Quick start

cargo run
curl http://127.0.0.1:7777/

No config, no wizard. Walks cwd + 4 levels for .git, parses ~/.claude/projects/**/*.jsonl, joins by cwd.

Local dev: make watch runs cargo-watch on the Rust binary.

MCP host

For Claude Desktop:

{
  "mcpServers": {
    "repo-recall": {
      "command": "repo-recall",
      "env": { "REPO_RECALL_CWD": "/Users/you/projects", "REPO_RECALL_DEPTH": "4" }
    }
  }
}

Install via Homebrew

brew tap coilysiren/repo-recall https://forgejo.coilysiren.me/coilysiren/repo-recall
brew install coilysiren/repo-recall/repo-recall
brew services start repo-recall

Logs at $(brew --prefix)/var/log/repo-recall.{log,err.log}. brew services edit repo-recall for custom WorkingDirectory / env vars.

Install as a systemd service (Linux / WSL)

coily exec install-systemd-user   # or: make install-systemd-user

Builds the release binary, installs it to ~/.local/bin/repo-recall, drops scripts/repo-recall.service into ~/.config/systemd/user/, enables lingering (starts at boot without a login), and starts the service. Idempotent: re-run after a rebuild to roll the binary. Logs via journalctl --user -u repo-recall -f.

Silencing repos

Drop empty .repo-recall-ignore at the root of a repo cloned for reading. Suppresses all action-required signals. Opt-in.

Point an agent at it

Hand the URL or MCP entry to a coding agent. Starter prompts: "work through every repo flagged as action-required", "find dirty trees and commit or discard", "land or delete stale local branches".

See also

Cross-reference convention from coilysiren/agentic-os#59.