Hire a team of AI agents. Run it like a company.
Opifer gives every agent a boss, a budget and a job. You hand out work and take the decisions; they deliver, get reviewed, and the company learns. Open source, one install, on your machine.
git clone https://github.com/NextEpochs/opifer.git
cd opifer && pnpm install && pnpm build
pnpm o4r init --company "My company"
pnpm o4r up # http://127.0.0.1:4700
Node.js 22 and pnpm. The database is embedded. Docker is optional. Works with Anthropic, OpenAI, a ChatGPT subscription or a local model.
A company you walk through, not an admin panel.
Home shows what needs you, what the team is doing and what it costs. The Inbox holds every decision in plain words. Team is an org chart you drag people onto. Work is a board. Money shows where every cent goes.
Three things you do. Everything else, they do.
The mental model is a company you run, not a tool you prompt. Agents are colleagues with a manager, and the manager reviews their work.
Hire the team
Drag a role onto the org chart: a CEO, a researcher, a developer, a copywriter, support. A job description in plain words. Any model, or a local one.
Give the work
A task: what to do, what done means, who does it. The agent wakes up at once, knows why the task matters, and can delegate to its reports.
Decide and verify
Approvals, budget increases and deliveries land in your Inbox, or on your phone through Telegram. One tap, and the agent carries on from where it stopped.
Rules that hold, whatever the model says.
Twenty invariants are the contract of the system. Each one is a test that outweighs any feature, and they are enforced by the runtime, not by the prompt.
- Budget before the call
- Every model call reserves its cost first. A reached cap stops the agent before the next call, and a budget increase lands in your Inbox.
- Done means verified
- No task closes without a result and a verification, by a person or by the reviewing agent. A parent closes only after its children.
- One assignee, taken atomically
- A task has one worker at a time. A lease with a heartbeat frees it if the agent dies, and blocks it after two failures instead of looping.
- Every task knows its why
- Mission, goal, project, parent: the chain is in every brief, so the agent works towards something instead of a title.
- Permissions per role
- Each tool is automatic, asks, or is blocked, per agent and role. Deleting folders, sudo and force pushes always ask, whatever the policy.
- Secrets never in the context
- Encrypted per company, bound to an agent and a tool, injected into the tool call only, redacted from its output.
- At most once
- Wake-ups and scheduled runs are rows with a unique key. A second server, or the same one after a crash, cannot run them twice.
- Nothing learned is deleted
- A memory is corrected or retired, never erased. A skill goes inactive, then archived, and comes back with one click.
- Every change is a revision
- An agent's configuration can be restored to any earlier version. The audit log accepts inserts only.
- One red button
- Stop everything: running turns are interrupted, routines pause, no model is called until a person resumes.
The company learns. Under governance.
- A background review reads a copy of every finished task and keeps what is worth keeping: short memories and, when a procedure emerged, a skill.
- Skills are files in the open agent-skills format, with versions. Install one from a folder, export one, restore an older version.
- Knowledge rises a level only with a decision. A skill that proves itself is proposed for the whole company. The policy decides: automatic, review, or forbidden.
- Routines run at most once per due time, even after a crash, and can run as a task the agent delegates and gets reviewed on.
Plugs into what you already use.
Models through provider plugins, tools through MCP servers and workflow endpoints, people through Telegram. Everything external goes through the same gate as native tools: permissions, approvals, budget, audit.
Questions people ask.
Is it free?
Yes. The core is AGPL-3.0, the SDK and the plugins are MIT, so extending Opifer does not bind you to the AGPL. You pay your model provider, or nothing with a local model.
Which models does it work with?
Anthropic and OpenAI with an API key, OpenAI through a ChatGPT subscription with no key, and any OpenAI-compatible server for local models: Ollama, LM Studio, vLLM, llama.cpp. Each agent can have its own model.
How is it different from a chatbot or a coding agent?
A chatbot is an employee. Opifer is the company: the org chart, the budgets, the approvals, the audit, the learning that stays with the company rather than with one conversation. Agents still chat, and they still run tools, but under the same rules a person would.
Where does it run and where does my data live?
On one machine, yours. The database is an embedded PostgreSQL under your home folder; nothing leaves it except the calls to the model provider you chose. A container image is there for servers.
Can I expose it on the internet?
Not yet. Version 1.0 has no authentication and listens on localhost only. Put a reverse proxy with access control in front if you must, and read the security review first. Authenticated mode is the first item on the roadmap.
What does an agent see of my secrets?
Nothing. A secret is bound to an agent and a tool, injected as an environment variable into that tool call only, and redacted if it shows up in the output. Every access is logged.
Start a company this evening.
git clone https://github.com/NextEpochs/opifer.git
cd opifer && pnpm install && pnpm build
pnpm o4r init --company "My company" && pnpm o4r up
Want to look around before hiring anyone? pnpm o4r demo creates a company already at work, without calling any model.