Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ashfulcra/fulcra-tools --skill skillgit clone --depth 1 https://github.com/ashfulcra/fulcra-toolsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ashfulcra/fulcra-tools/skill)<a href="https://agentmods.dev/skills/ashfulcra/fulcra-tools/skill"><img src="https://agentmods.dev/badge/skills/ashfulcra/fulcra-tools/skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ashfulcra/fulcra-tools/skill"><img src="https://agentmods.dev/badge/skills/ashfulcra/fulcra-tools/skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00038 | $0.01235 |
| Opus 5.5 | $0.00015 | $0.00494 |
| Sonnet 5.5 | $0.00008 | $0.00247 |
| Haiku 4.5 | $0.00004 | $0.00123 |
Grade B, and why
fulcra-prefs scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
| Hooks installed? | `grep -q fulcra-prefs-hooks ~/.claude/settings.json` (or `~/.codex/hooks.json`; custom `--target-dir` installs won't match this grep) | exits 0 — a managed SessionStart/capture hook is wired | [Onboa How it starts
The opening of the file, as written. The whole thing — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
fulcra-prefs
The user's preferences and facts live in their Fulcra account as typed, decaying signals, compiled into per-platform preference documents. Your job: LOAD them at session start, APPLY them, and CAPTURE new ones.
Where to start — the re-entrancy probes
Before loading anything, probe how far this user already got. Enter at the first row whose probe fails:
| Probe (run in order) | Command | Passes when | If it fails, enter at |
|---|---|---|---|
| Authed? | fulcra user-info |
exits 0 and prints valid JSON | Pick your path — install, then fulcra auth login |
| Onboarded? | fulcra-prefs compile (an idempotent write — also drains queued captures; safe anytime) |
exits 0 (compiled N keys …); exit 2 with not onboarded means no definition / prefs/meta.json yet |
Onboarding a new user — fulcra-prefs onboard |
| Prefs present? | fulcra-prefs inject --platform <your-platform> |
non-empty output (a rendered preference block) | Pick your path tier-1 capture — nothing to load yet; start capturing |
| Hooks installed? | grep -q fulcra-prefs-hooks ~/.claude/settings.json (or ~/.codex/hooks.json; custom --target-dir installs won't match this grep) |
exits 0 — a managed SessionStart/capture hook is wired | Onboarding a new user — fulcra-prefs install-hooks --platform <claude-code|codex> |
First failure wins. Hooks are optional: a CLI-capable agent runs inject/capture
by hand without them, so a hookless-but-onboarded user is fully usable — the last
row only tells you whether load/capture is automatic. All four pass → inject at
session start already carries their prefs; apply them and capture new ones.
Pick your path
- You can run shell commands → use the CLI. Setup once:
uv tool install fulcra-prefs(andfulcra auth loginif not authed).- Load:
fulcra-prefs inject --platform <your-platform>→ prepend output to your working context. Empty output = no prefs yet; continue silently. - Capture:
fulcra-prefs capture --key <ns.key> --value '<json>' --strength <-1..1> --platform <your-platform>(see references/fulcra-prefs-capture.md for when and what to capture). - Auto-capture: notice preferences passively and record them in one call at
session end —
fulcra-prefs capture-batch --file <json-array> --platform <your-platform>; mark inferred items lowerconfidence(compile won't let a guess override an explicit pref). See the capture reference. - Text extraction: when you have raw user text but not a hand-built key/value,
run
fulcra-prefs extract-candidates --platform <your-platform> --session <session_id> --text '<user text>' --write. It only queues explicit preference language; lifecycle hooks still perform the capture. - Hooked auto-capture: if
fulcra-prefs install-hooks --platform <your-platform>is installed, write candidates during the session to~/.local/state/fulcra-prefs/candidates/<your-platform>/<session_id>.json; the lifecycle hook drains that file throughcapture-batch. Prefer the helper command:fulcra-prefs notice --platform <your-platform> --session <session_id> --key <ns.key> --value '<json>' --strength <n>. - Refresh:
fulcra-prefs compile(run after captures; cheap).
- Load:
- You can make HTTP requests but not run commands → follow references/fulcra-prefs-tier2-http.md (device-flow auth + direct API).
- You only have the Fulcra MCP → you can read user data the MCP exposes, but preference write/read of the compiled docs is not available via MCP today. Tell the user to run onboarding from a CLI-capable agent.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 80 lines · 38 tokens per session scan B b9cd13bf79e5
fulcra-prefs is a skill published in the GitHub repository ashfulcra/fulcra-tools (10 stars, last pushed 8d ago), licensed MIT. It adds 38 tokens to every session and 1,235 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
magic-compact
Compact this Claude Code session.
mem0-vercel-ai-sdk
Mem0 provider for Vercel AI SDK (@mem0/vercel-ai-provider). TRIGGER when: user mentions "vercel ai sdk", "@mem0/vercel-ai-provider", "createMem0", "retrieveMemories", "addMemories", "getMemories", "searchMemories", "mem0 vercel", "AI SDK provider", "AI SDK memory", or is using generateText/streamText with mem0. Also…
mem0-tour
Browses all stored memories grouped by category with full content display. Use when reviewing all project memories, exploring stored knowledge, onboarding to a project, or getting an overview of captured decisions, conventions, and learnings.
pause
Pause Mem0 memory capture on this machine. Use when the user wants to stop memories being recorded, for example for private work or experiments.
agent-carnet
Use this skill when the user asks to save, recall, find, or organize notes. Triggers on: 'remember this', 'save this', 'note this', 'what did we discuss about...', 'check the notebook', 'find in carnet'. Also use proactively when discovering findings worth preserving across sessions.
mem0-oss-to-platform
Plan, then execute, a migration of a project from the mem0 open-source / self-hosted SDK (local Memory class) to the mem0 Platform / hosted SDK (MemoryClient). TRIGGER when: the developer wants to move, switch, or migrate mem0 off OSS/self-hosted to the hosted API, e.g. "migrate my mem0 setup to the platform", "switch…