Pre-alpha — open source

The intelligence layer
for AI agents

Make 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 set up Moneypenny and start using it as a tool.

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. No infrastructure to manage. No state to lose.

Multiple agents share knowledge via CRDTs with scoped visibility. Delegate research to one agent and have it sync findings back. Each agent keeps its own persona, memory, and policies.

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.

Multi-Agent Sync

Agents share what they know via CRDTs. Scoped visibility — private, shared, or protected — enforced at the SQL level. Delegate tasks across agents with independent memory and persona. No central server.

Hybrid Retrieval

One query searches all of your agent's knowledge — facts, conversations, documents, and session context. Semantic and full-text search combined, deduplicated, and diversity-ranked.

Scheduled Jobs

Cron-scheduled prompts, reflection loops, pipelines, and custom JavaScript — all governed by the same policy engine. Define once, sync across agents.

Knowledge Ingestion

Feed URLs, files, or raw text into the knowledge base. HTML is stripped and normalized automatically. Content is chunked, embedded, and searchable within seconds.

Extensible Tools

JavaScript tools persist in the database and sync across agents. Connect any MCP server. Runtime skills track usage and success rate — high performers surface more in retrieval.

Encrypted at Rest

SQLCipher encryption for the agent database. Keys stored in your OS keychain — never plaintext on disk. Data at rest is opaque without the key.

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.

The database is the runtime, not just the storage layer. Policy evaluation, fact extraction, knowledge search, tool governance, and audit logging all execute inside SQLite — not in application code that happens to persist to a database. The orchestrator is a thin async loop; the intelligence lives at the data boundary.

No Postgres, no Redis, no vector database, no message queue. Every surface — CLI, MCP sidecar, HTTP API, Slack, Discord — is a thin adapter over the same core. Deploy anywhere you can run a binary. Back up by copying a file.

Stay in the loop

Moneypenny is open source. Subscribe to hear about releases, new capabilities, and project updates.