The intelligence layer
for AI agents

Your agents smarter, safer, stateful, and governed. All in a single SQLite file.

Paste this into your agent

Visit https://github.com/jacobprall/moneypenny and set up the local mcp sidecar

Your agent will clone the repo, build the binary, start Moneypenny, and register it as an MCP server.

coding-agent

> Where did we land on the auth refactor? I started it two weeks ago.

Found 3 facts from your Feb 24-26 sessions. You chose passport.js over custom JWT for the OAuth flows. There's a migration plan in knowledge from the arch review, and PR #847 still has 2 open comments from Maya.

> What did the docs say about the rate limit on that API?

From the ingested API spec: 120 req/min per client, 429 response includes Retry-After header. Your note from Mar 1 says the staging environment uses a 10x multiplier.
project-assistant

> Catch me up on Acme. I haven't looked since Tuesday.

2 facts synced from design-agent since then: client approved the revised wireframes Thursday, launch moved to March 20. Your last note flagged the Stripe integration blocker, still unresolved.

> What does design-agent know that I don't?

4 shared facts you haven't seen. Design-agent logged a brand color change Wed, a new homepage layout Thu, and two asset exports Fri. Synced via CRDT, scoped to the Acme project.
ops-admin

> Push the schema migration to prod.

Denied: Prod deploys blocked outside maintenance windows (Sat 2-6am UTC). Staging is clear. Want me to run it there instead?

> Show me every denied action this week.

4 denials logged. This deploy (policy: maintenance-window), two shell commands from coding-agent (policy: no-rm-rf), one API call from deploy-bot (policy: rate-limit). Full trace and session context attached to each.

The problem

AI agents forget everything

Context resets every session. Yesterday's decisions, research, and preferences are gone. You re-explain everything or the agent guesses.

Tool calls run unchecked. No policy, no guardrails, no way to say "block destructive SQL" or "rate-limit shell access."

When something goes wrong, there's no trail. You can't trace what the agent did, what it was denied, or why.

Adding state means infrastructure: Postgres, Redis, a vector database, and an ops team to keep it running.

The solution

Moneypenny makes agents stateful

Every turn enriches a persistent knowledge graph. Facts are extracted, linked, and compressed so today's session builds on yesterday's. One SQLite file per agent holds memory, policies, audit logs, and sync state.

Operations are governed before they execute. Static rules, behavioral limits, rate controls, all evaluated in-process. Denials flow back as context the agent can reason about, not silent failures.

Everything is auditable and queryable, by you and the agent itself. No infrastructure beyond a single binary.

Persistent Memory

Your agent builds on yesterday's context. Facts are extracted every turn, graph-linked, and compressed to three tiers. Confidence grows on re-extraction. Stale knowledge decays. 500 facts fit in ~2K tokens.

Policy Engine

Every operation is checked before it runs. Static rules, behavioral limits, rate controls, and time windows. Denials become context the agent can reason about, not crashes.

Hybrid Retrieval

One query searches everything. Semantic and full-text search across four stores, fused with Reciprocal Rank Fusion and diversified with MMR.

Audit Trail

Trace exactly what happened and why. Every action logged with full context: session, trace, and the expression that triggered it. Queryable by the agent itself.

Multi-Agent Sync

Agents share what they know. CRDT-based knowledge sharing with scoped visibility: private, shared, or protected. No central server.

Runtime Agnostic

Runs anywhere your agent does. Standalone with CLI, HTTP, Slack, Discord, Telegram, or as a sidecar via stdio, MCP, or HTTP.

Architecture

Zero infrastructure, full control

Everything lives in one SQLite file per agent: memory, documents, policies, audit trail, job schedules, sync state. Seven extensions are statically linked into one Rust binary: vector search, on-device inference, CRDT sync, JavaScript tools, and RAG.

Agents interact through a single query language. One MCP tool that expresses every operation from memory search to policy creation. The agent learns the syntax from the tool description. No SDK, no tool discovery, no integration docs.

Every surface (CLI, MCP sidecar, HTTP API, Slack, Discord) is a thin adapter. Business logic never leaves the database boundary.

Try the hosted alpha

Moneypenny is open source. Hosted Moneypenny is in alpha. Drop your email and we'll send you access.