The personal AI agentthat compounds while you sleep.
Persistent memory across sessions. A daily journal at 4:30am. 21 AI providers, BYO key. Runs on your machine — no backend, no telemetry.
curl -fsSL https://raw.githubusercontent.com/ManasaEdavalli-TharunSure/opengriffin/main/scripts/install.sh | bashExisting agent tools forget. OpenGriffin compounds.
Where existing tools stop
- —Most agent runtimes remember, but don't self-evolve — no daily journal, no skill graph, no drift detection
- —Multi-model chat dashboards are great UIs, not agents — they don't run cron, spawn sub-agents, or act between your messages
- —Hosted assistants put your prompts and outputs on someone else's servers and ride someone else's uptime
- —Few ship a critic, capability tokens, Merkle audit, or a dead-man's switch
The OpenGriffin answer
- ✓Persistent memory across sessions, days, years
- ✓Daily 4:30am self-improvement loop writes its own journal
- ✓Skills the agent authors, edits, and retires at runtime
- ✓Long-running worker pool — agents that run for days
- ✓100% local, BYO key, no signup, no backend, no telemetry
30 features · 33 MCP servers · 11 nightly auto-jobs
A complete personal-agent runtime.
Every feature is local-first. None require an account or a subscription. Bring your own AI provider key for any of 21 supported backends.
Echo Memory + Receipts
Vivid → recent → fading → ancient. Time-aware decay. Every recalled fact links to its source session via a citation receipt.
MEMORY · USER · SOUL
Three flat markdown files load fresh into every session. Environment, profile, voice. Edit them by hand or let the agent.
CONSTRAINTS.md
Hard rules the agent must NEVER violate. Loaded at the top of every system prompt, override-proof.
Daily journal
4:30am every day: agent reviews yesterday, writes a journal entry, consolidates memory, suggests skills.
Dream cycle
3am offline reflection on interesting moments. Counterfactual analysis. Distills lessons into MEMORY overnight.
Drift detection
Flags when stated preferences contradict recent behavior. “You said you hated meetings; today you scheduled five.”
Skill Hub
griffin install github://owner/repo. License-checked, signed, reputation-tracked. Replaces tool sprawl.
Self-healing skills
When a skill fails 3+ times in a week, the agent debugs it, proposes a patched SKILL.md, and asks before applying.
Skill Strategy
Recommends new skills based on co-usage, flags never-used ones, surfaces top-used to invest in.
Worker pool
Long-running background agents. Spawn a research worker. Queue tasks. They check in to Telegram for days.
Agent Pods
Multiple personas debate in a group chat with shared memory. Convergence detection.
Genealogy
Fork a child agent from a parent. Inherits SOUL, skills, memory snapshot. Diverges over time.
Ambient mesh
Cron + webhook + poll → LLM predicate → skill action. “When Stripe revenue drops 10% week-over-week, draft a postmortem.”
Time-locked actions
Agent commits to do X at a future time. You can /veto before; otherwise it runs.
Predictive memory
Detects time-of-day query patterns and pre-computes likely-asked things 15 minutes early. “I noticed you check NVDA at 8:30am — here it is.”
Critic — adversarial twin
Every consequential action reviewed by a second agent that doesn't see your prompt. Catches goal misgeneralization.
Capability tokens
Signed, scoped, expiring permissions for tools. The agent can't do something it doesn't hold a token for.
Pre-exec scanner
Pattern-match for prompt injection, dangerous shell, exfil URLs, hardcoded secrets, homograph attacks. Hardline blocklist for fork bombs / mkfs / dd-to-disk.
Hardware attestation
Secure Enclave (macOS) / TPM (Linux) signing of every consequential action. Tamper-evident audit log.
ZK-style proofs
Hash-chained Merkle audit log. Prove any single action existed without revealing the others.
Dead-man's switch
If you don't check in for N days, outbound actions lock. Recovery code via Telegram. Optional escalation to a trusted contact.
Quorum (N-of-M)
High-stakes actions need 2-of-3 independent agent personas to agree. Reduces single-point prompt-injection failure.
Approval inline buttons
Risky tool calls ask before running. Telegram inline keyboard: Allow once / Session / Always / Deny. 60-second auto-deny.
Checkpoints + rollback
Every Write/Edit snapshots the file first. /rollback restores in one command.
7 free gateways
Telegram, Discord, Slack, Email, iMessage, Signal, Matrix. Same brain answers across all of them.
Cross-platform identity
Link your accounts across Telegram + Discord + Slack + ... Single memory namespace per human.
A2A peer mesh
Your agent can call another OpenGriffin user's agent. P2P. Pay-per-call via x402 wallet, or free.
Reputation ledger
Signed JSON-LD profile of your agent's track record. A2A-discoverable for trust.
Voice round-trip
Telegram voice → faster-whisper → Claude → Edge-TTS → reply voice. Local STT/TTS, no cloud.
Browser automation
Playwright MCP. Drives a real Chromium for screenshots, scraping, end-to-end clicks.
Image generation
FAL.ai wrapper for FLUX. BYO FAL_KEY. (More providers landing soon.)
Kanban
JSON-backed task board. Workers + pods + ambient triggers all read/write it.
Live observability
Server-Sent Events stream of every agent thought + tool call. Datadog APM for cognition.
Replay debugger
Re-run any past session with a different model or SOUL. Counterfactual diffing for regression hunts.
Provider routing
Auction classifier scores each prompt 0–3 and routes cheap. “hi” → Groq. “prove this” → Claude Opus.
Soul Sync
Mines your past chats to build a writing-voice card. Agent drafts as you.
Webhooks gateway
HMAC-validated POST endpoints. GitHub, Stripe, IFTTT — anything that webhooks reaches your agent.
Bring any AI key. 21 providers supported.
No central account, no shared pool. Your keys, your bills, your data.
One line.
No account. No waitlist. No backend. Apache 2.0.
curl -fsSL https://raw.githubusercontent.com/ManasaEdavalli-TharunSure/opengriffin/main/scripts/install.sh | bashOr with pip: pip install opengriffin && opengriffin run
Pick your messenger
Telegram, Discord, Slack, Email, iMessage, Matrix, or Signal — grab the credential and add it to .env. See all 7 gateways.
Pick a provider
Drop any of the 21 keys into .env. Or use Claude Max OAuth — no key needed.
opengriffin run
Bot starts. Send it a message. Memory persists. Tomorrow at 4:30am the journal writes itself.
One brain · seven messengers
Pick your messenger.
Run on Telegram, Discord, Slack, Email, iMessage, Matrix, or Signal — or all of them at once. Shared memory, kanban, skills. Detailed per-gateway setup lives in the docs.
Telegram
Canonical gateway. Long-polling, voice notes, inline-button approvals.
- @BotFather → /newbot → copy the token
- @userinfobot → get your numeric user id
- Paste into .env, opengriffin run, send /start
Discord
Bot user with Message Content Intent. DMs + @-mentions in channels.
- Developer Portal → New Application → Bot → Reset Token
- Enable Message Content Intent · invite via OAuth2 URL Generator
- pip install 'opengriffin[discord]' && opengriffin run
Slack
Bolt Socket Mode — no public webhook URL needed. Threading preserved.
- api.slack.com/apps → Socket Mode → App-Level Token (xapp-)
- OAuth scopes + Event Subscriptions → install to workspace (xoxb-)
- pip install 'opengriffin[slack]' && opengriffin run
IMAP polling in, SMTP out. Stdlib only. Threading via message-id.
- Get an App Password (Gmail / iCloud need one with 2FA)
- Fill IMAP + SMTP host/port/user/pass + allowed senders
- opengriffin run · polls every 60 s
iMessage
macOS only. Reads chat.db directly, sends via AppleScript through Messages.app.
- Grant Full Disk Access to your terminal (then restart it)
- Grant Automation access to Messages.app
- Set IMESSAGE_ALLOWED_HANDLES (required — no open mode)
Matrix
Any homeserver: matrix.org, Synapse, Beeper, Element. E2E via Olm/Megolm.
- Register a bot account (matrix.org or your homeserver)
- Grab access token (or store the password)
- pip install 'opengriffin[matrix]' && opengriffin run
Signal
Wraps signal-cli. Hardest of the seven — JVM 21+ and a dedicated number.
- brew install signal-cli (Java 21+)
- signal-cli register + verify with SMS code
- Set SIGNAL_NUMBER + SIGNAL_ALLOWED_NUMBERS, run
⚠️ Leaving any *_ALLOWED_USERS env var empty opens the bot to anyone. Set it to your own id while testing.
Migrating from another runtime?
Built-in importers move your memories, cron jobs, and recent sessions into OpenGriffin's ~/.opengriffin/ layout in one command.
griffin migrate --list # show available importers
griffin migrate from-<source> # run an importerImports MEMORY/USER/SOUL.md, cron schedules, channel directory, recent message history, and any local scripts. See docs/migration.md for the full mapping.
FAQ
Stop renting your agent. Run it.
30 features. 21 providers. 7 platforms. Free forever.