SkillAgentSearch skills...

cfetch

Local-first AI agent memory and context engine for Claude Code, Codex, Gemini and MCP: cited Markdown recall, code search, hooks and cross-machine serving.

Install / Use

claude mcp add corbet-libs -- npx -y github:corbet-libs/cfetch

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

74/100

Supported Platforms

Claude Code
Claude Desktop
Gemini CLI
OpenAI Codex

Our assessment of cfetch

cfetch scores 74/100 on our quality scale, 94th of 204 Content & Media skills we index (top 47%).

Its MCP Server is 5.3 KB long, split into 7 sections with 3 code examples: a solid amount of guidance for an agent.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
26/30
Structure
16/20
Description
15/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated today, so cfetch is actively maintained.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 80/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

cfetch compared with similar skills

All 4 of these similar skills score higher than cfetch; compare them before choosing.

SkillScoreStarsUpdatedFormat
cfetch (this skill)by corbet-libs743todayMCP Server
Agent-Reachby Panniantong10085.2k9d agoCLAUDE.md
headroomby headroomlabs-ai10073.7ktodayCLAUDE.md
rufloby ruvnet10073.2ktodayCLAUDE.md
CowAgentby zhayujie10047.1ktodayCLAUDE.md

Frequently asked questions

How do I install cfetch?
Run claude mcp add corbet-libs -- npx -y github:corbet-libs/cfetch. The install tabs above show the steps for each supported agent.
Which AI agents does cfetch work with?
It is written for Claude Code, Claude Desktop, Gemini CLI and OpenAI Codex, as a MCP Server file. Other agents that read the same format can often use it too.
Is cfetch safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It declares no license and scores 80/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is cfetch still maintained?
The repository was last updated today, so cfetch is actively maintained.

cfetch

Local memory for agents: cited Markdown search, CPU vectors, Obsidian links, code navigation and ordinary Git synchronization. One Rust binary; your files remain the source of truth.

This is the current main architecture. Older releases and historical design notes describe the removed remote-serving and peer-sharing system.

Installation

Use a native archive from Releases, or nix run github:corbet-libs/cfetch (.#cfetch when building this checkout). Linux, Apple Silicon and Windows CPU packages include the embedding engine. Intel Mac packages currently provide lexical and graph retrieval: upstream ONNX Runtime does not publish that target. Model weights remain a separate, qualified input configured with embeddings.local_model; installation never starts an accelerator or silently downloads a model.

Storage

agents/
├── knowledge/                    # shared, human-readable repositories
│   ├── rules/                    # ring 0: musts
│   ├── behaviours/               # ring 2: tools, skills, practices
│   └── <topic>/                  # ring 3: independently shareable topics
├── mind/
│   ├── <selected-mind>/          # one Git repository per mind
│   │   ├── guidance/            # ring 1: shoulds
│   │   ├── identity/
│   │   ├── policy/
│   │   └── memories/            # ring 5: observations awaiting promotion
│   └── models/                   # ignored model files
├── todo/                         # ring 4: shared task repository
│   ├── backlog/
│   ├── active/
│   ├── blocked/
│   └── done/
├── logs/                         # ring 6: local activity
├── scratch/                      # disposable working files
└── projects/                     # code checkouts

CFETCH_BRAIN selects the root; CFETCH_MIND selects the mind independently of the hostname. The default mind is the hostname. CFETCH_STATE_DIR selects the local derived index and daemon state. Model files, secrets, other minds, scratch and logs stay outside knowledge retrieval.

Nested repositories are ordinary independent checkouts. Their parent ignores them; cfetch still indexes their visible Markdown. Repository access controls what can be shared. cfetch reads a filesystem and does not manage its mounts.

Use

cfetch init
cfetch recall "deployment decision"
cfetch recall "deployment decision" --hybrid
cfetch recall --id r3-<citation>
cfetch recall "deployment decision" --fresh
cfetch graph --focus "deployment"
cfetch graph-path "Deployment" "Backups" --depth 6
cfetch find SymbolName
cfetch code-graph path path/to/source.rs path/to/dependency.rs
cfetch repos ~/agents/knowledge ~/agents/todo --sync
cfetch memories list
cfetch daemon run
cfetch mcp

Recall combines lexical and semantic candidates with citations. Vector coverage and fallback are reported. The graph follows actual Markdown links/backlinks; missing and ambiguous notes remain explicit. Code dependency edges carry source evidence. Graph traversal is bounded, never an LLM-generated claim.

The daemon keeps indexes warm and fingerprints source files before answering. Edits, deletions and Git updates invalidate derived content. Markdown remains authoritative. status reads cached health; doctor explains configuration.

Local vectors

Build with --features embedded-embeddings. Set embeddings.local_model to a qualified offline EmbeddingGemma pack. The pack binds graph, weights, tokenizer and pipeline by content digest. cfetch qualify-model PACK REFERENCES checks short/long canonical vectors and semantic ordering before enabling it. Model preparation lives in scripts/prepare-local-model.py and runs on a build worker. Ordinary recall, citation expansion and MCP memory queries return a committed cached snapshot with its generation and an explicit freshness note, and request one coalesced background refresh. recall --fresh (MCP freshness: "strict") waits at most five seconds for a background scan begun after the request; it returns a freshness error if that proof is unavailable. When the daemon is unavailable, memory queries return a bounded error instead of scanning the source tree. Semantic ranking has its own bounded inference wait.

No model is downloaded during recall. Inputs exceeding the model's context are reported as uncovered, never silently truncated.

{
  "resident": [],
  "embeddings": {
    "enabled": true,
    "local_model": "/path/to/qualified/model-pack"
  },
  "git": {
    "enabled": true,
    "roots": ["/path/to/agents/knowledge", "/path/to/agents/todo"],
    "interval_secs": 60
  }
}

Configuration belongs in the machine's cfetch config, outside shared Markdown. Model packs are immutable inputs; indexes and vector caches are derived. Remote inference endpoints are refused. Optional model services must use loopback.

Git behavior

Sync discovers nested repositories and serializes operations using a lock in Git's common directory. It fetches and integrates committed history, then pushes. Dirty worktrees, conflicting histories and repositories without an upstream are reported individually. It never stashes, resets, force-pushes or silently commits arbitrary edits. Commit intended changes explicitly; the next sync publishes them. No Git LFS service or hosted memory account is required.

License

See LICENSE.md and third-party notices.

Related Skills

View on GitHub
GitHub Stars3
CategoryContent
Updated5h ago
Forks1

Languages

Rust

Trust signals

80/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium1 low