Griffin is an open-source, self-hosted platform for AI agents that work for you. Define each agent, grant it tools, decide who may call it — and talk to them from the web, Telegram, your terminal or another agent.
No framework to learn and nothing to deploy when an agent changes. Three steps, all from the UI or the API.
An id, a job description, instructions and a model. Import a ready-made profile or write your own.
{ "id": "writer",
"instructions": "Draft, edit, translate…",
"provider": "claude" }Decide which tools the agent may use — and, separately, which of them each caller gets: you, another agent, a job, a colleague, an MCP client.
"callers": { "owner": { "tools": "*" }, "team": { "tools": ["show_media"] } }
Web, Telegram, terminal, HTTP API or MCP. Agents delegate to each other, ask you before anything irreversible, and report back.
$ node bin/griffin.mjs "summarise this week" › delegating to researcher…
The same agent gets a different toolbox depending on who is calling. It's enforced where tools are handed to the model — a tool a caller wasn't granted simply doesn't exist for that run. An example policy:
| Caller | Read notes | Charts & files | Delegate | Send Telegram | Create jobs | Irreversible action |
|---|---|---|---|---|---|---|
| Youowner, web or Telegram | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Another agentdelegated subtask | ✓ | ✓ | ✓ | — | — | ? |
| Colleaguemessaging on Telegram | ✓ | ✓ | ✓ | — | — | ? |
| Scheduled jobnobody watching | ✓ | ✓ | ✓ | — | — | — |
| MCP cliente.g. Claude Code, own token | ✓ | — | ✓ | — | — | ? |
An orchestrator hands work to specialists and stays free; results come back when subtasks land.
Irreversible actions wait for a button from you. Unattended runs refuse them. Every approval is recorded.
Agents call typed tools and show where each answer came from. Charts, images, PDFs and files render inline.
A prompt, a schedule and a destination. Daily numbers or a weekly digest, delivered to the chat people already use.
Claude Agent SDK, Cursor SDK, or any OpenAI-compatible endpoint — hosted or local. Mix them across agents.
Simulation chats run the whole agent tree but record side effects instead of executing them — with scenario evals.
The model process has no shell and no credentials. A separate broker holds them and exposes only named tools.
Node 24 and SQLite, one docker compose up. No SaaS control plane, no telemetry.
The UI follows your browser language, right-to-left included, and agents answer in the language you write in.
The core is the product; every interface is just a client of it. Run it with a UI, or fully headless.
Reads and sends Telegram messages when you ask, keeps notes, and turns chores into scheduled jobs.
Telegram assistant →Agents that read and compare sources, then draft, edit and translate — without sending anything.
See use cases →Colleagues message it directly; it answers within its limits and asks you before anything irreversible.
How threads work →Claude Code and Cursor delegate long tasks over MCP and pick up the answer when it lands.
MCP server →A fresh install is one agent you can talk to. Everything else is something you add when you want it.
$ git clone https://github.com/paziresh24/Griffin.git griffin && cd griffin $ npm ci && npm run build $ mkdir -p data workspace $ echo "sk-ant-…" > data/anthropic.api-key $ GRIFFIN_DATA=./data GRIFFIN_WORKSPACE=./workspace \ PORT=3100 node apps/server/src/index.mjs # open http://127.0.0.1:3100 — token in data/owner.token # or with Docker $ docker compose -f deploy/compose.yaml up -d --build
Griffin is an open-source, self-hosted platform for a small team of AI agents. You define each agent's instructions, model and tools, and decide who may call which tool; the agents answer from those tools instead of from the model's memory.
A personal assistant on Telegram, research and writing helpers, an assistant your colleagues can message, scheduled reports delivered to a chat, an MCP backend that Claude Code or Cursor can delegate long tasks to, or an operations agent connected to your own systems.
Each agent picks its engine: the Claude Agent SDK, the Cursor SDK, or any OpenAI-compatible API — including local models served behind an OpenAI-compatible endpoint. Different agents can use different models.
Tool access is filtered per caller before tools reach the model: you, another agent, a scheduled job, a colleague on a messenger and an external MCP client each get only the tools granted to them. Irreversible actions wait for your approval and every approval is recorded.
No. A fresh install is Node 24 and SQLite with one agent you can chat with. Tool packs for your own systems switch on only when you configure them.
Yes. Griffin is MIT-licensed, runs on your own machine, and has no SaaS control plane or telemetry; you only pay for the model you choose.
Griffin is free, open source and MIT-licensed. If it's useful to you, a star helps other people find it.