by ajsahni
Agents Office v3 (Beta) — a headless office where AI agents do real work
# Add to your Claude Code skills
git clone https://github.com/ajsahni/agents-officeGuides for using ai agents skills like agents-office.
Last scanned: 10/8/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@anthropic-ai/sdk: Claude SDK for TypeScript: Memory Tool Path Validation Allows Sandbox Escape to Sibling Directories",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-10-08T11:09:20.228Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how agents-office compares with popular alternatives.
agents-office is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ajsahni. Agents Office v3 (Beta) — a headless office where AI agents do real work. It has 521 GitHub stars.
Yes. agents-office passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/ajsahni/agents-office" and add it to your Claude Code skills directory (see the Installation section above).
agents-office is primarily written in JavaScript. It is open-source under ajsahni on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh agents-office against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.

A 3D isometric office where AI agents do real work on your own Claude login.
Six departments, thirty-five agents at their desks, a task bar that routes what you type to the right agent, and a Brain at the centre that is your own folder of notes. Type a task, the office gives it to the right person, they read your notes, use the connectors you have already set up in Claude Code, do the work, and file the result back into your notes. Everything runs on your machine.
Beta. It works end to end. Expect rough edges and tell us about them in Issues.
License, in plain English: Agents Office is a Sahni.ai product. It is free for personal and internal use. You may not sell it, resell it, or build a paid product on it. You may not rename it, rebrand it, strip the Sahni.ai mark or the notices, present it as your own, or wire it into or bundle it with another product, agent system or workforce. (Formal terms: PolyForm Noncommercial 1.0.0 plus Sahni.ai's additional terms — see LICENSE.) The page carries the Sahni.ai mark at the bottom-left and a licence line along the bottom; leave them in place.

revise: … becomes a standing rule. → Teach the agentsThe full list, release by release: CHANGELOG.
npm commands directly, ./setup is Bash only)ANTHROPIC_API_KEYgit clone https://github.com/ajsahni/agents-office.git
cd agents-office
./setup # checks Node, git and Claude; installs; builds; boots once
npm start # → http://localhost:4520
Without ./setup: npm install && node build.mjs && npm start.
dist/command-centre-v2.html opens the same office on its own,
without a server, in demo mode.revise: make it shorter and they rework their last deliverable.The bar under CONNECTED TO is real: it is the list from claude mcp list on this machine,
which is the same list the agents get as tools. Gmail, Slack, Notion, Google Drive, Canva,
whatever you have connected in claude.ai or added with claude mcp add. A server that needs
authentication shows grey with the reason on hover, and is not wired to any pod until it works.
Nothing connected yet? The bar says so.
Agents can call those servers while they work, plus web search. They never get Bash, file tools or sub-agents. Their standing rule: read freely; send, post, pay, delete or change anything outside this machine only when your task explicitly asks for that exact action. A finished deliverable says which tools it used, and the note in your brain records them.
Decide what the agents may touch in office.config.json:
"mcp": { "allow": [], "deny": ["Stripe"], "departments": { "Slack": ["emails", "ops"] } },
"tools": { "web": true, "browser": true },
"teams": { "enabled": true, "max": 4 }
allow empty means every connected server. deny keeps a server in the bar but out of the
agents' hands ("deny": ["Chrome"] works the same for the browser). departments says which pods
a server is wired to (known brands have a default; anything else feeds every pod). Set tools.web
to false to keep the agents off the web, tools.browser to false to keep them out of your
Chrome (see Claude in Chrome).
Tool use needs the Claude Code login; on an ANTHROPIC_API_KEY the agents write from your notes only.
The 35 agents are in office.agents.json: an id, a department, a name, a role, what they do,
and the connectors they usually use. Change the name, the role, what they do and their tools.
Departments, leads and seats are fixed: six pods, 35 desks, that is the office. A new kind of
agent is a renamed seat in the right department.
The easy way is to let Claude do it. Open Claude Code in this folder and say what you want:
claude
> Rename the Newsletter agent to PODCAST NOTES. It turns each episode into show notes and a LinkedIn post, and uses Google Drive.
> Make the Sales department about wholesale accounts, not inbound leads. Rewrite what each agent does.
> Tell every Finance agent to use Xero and nothing else.
Claude reads CLAUDE.md, writes your changes to office.agents.local.json (yours, ignored by
git, so git pull never overwrites it), and validates them with npm run check. Restart the
office and the desks carry the new names. Edit the file by hand if you prefer; the shape is:
{ "agents": [
{ "id": "newt", "name": "PODCAST NOTES", "role": "Podcast Notes Agent",
"does": "Turns each episode into show notes and a LinkedIn post.", "tools": ["google drive"],
"brief": "Show notes are five bullets and a pull quote. The LinkedIn post opens with the quote, never with the episode title." }
] }
Edits to id, department or lead are ignored, and the server says so at start. The same
file can also sit in your brain as <brain>/Agents Office/agents.json; the office reads the
shipped roster, then the brain's, then the local file.
Renaming an agent says what it does. It does not say how. Out of the box every agent knows its one-line job, your notes, and a rule to hand over a finished deliverable, so the first results are competent and generic. Two ways to fix that, both read before every task:
brief field above.<brain>/Agents Office/skills/<name>/, with a
SKILL.md (when it applies, the steps, the shape, the rules) and the template or example
beside it. Bind it to an agent or a department in its front matter. Same shape as a Claude
Code skill.---
name: proposal
description: How we write a client proposal
agents: [piper]
---
# Writing a proposal
Use this for any request that ends in a document a client says yes or no to.
1. Prices come from `10-Business/offer-ladder.md`. Never invent one.
2. Follow `template.md` beside this file, section for section.
- Three options, always. Recommend the middle one.
Three example skills ship in skills/ for the sample studio. The fastest way to write yours is
to hand Claude Code what you already have, the SOP, the email you keep copying, the last report
you were happy with, and ask for a skill:
claude
> Here is the proposal I sent Harbourside. Turn it into a skill for the Proposals agent: the
shape as a template, the rules I follow, and keep this one as the example.
Skills and briefs take effect on the next task, no restart. npm run check validates them and
http://localhost:4520/api/skills shows who has what. The full guide, including what the agent
sees and how to write a good one, is SKILLS.md.
Click a department lead and say set up. The lead asks five questions, one at a time: what the department does here, the job you do most, what a good result looks like, what must never happen, which tools and people are in