Your agents, in Slack.
Mention the bot in a channel or message it directly, and a Claude Code or Codex run starts on your Mac once you approve it. The run reports back in its thread, from a sandbox that keeps it in its project. Your Mac connects out to Slack, so nothing listens for the internet.
# atlas4 members
Sam Lee9:12 AM
The CI cache hit rate dropped after the branch merge.
Alex Doe9:41 AM
@Hansard Add the branch name to the CI cache key prefix in .github/workflows/ci.yml, then run the cache tests.
3 replies
Message #atlas
Thread# atlas
Alex Doe9:41 AM
@Hansard Add the branch name to the CI cache key prefix in .github/workflows/ci.yml, then run the cache tests.
HansardAPP9:41 AM
Approve this run?Run request
You asked for this run.
Add the branch name to the CI cache key prefix in .github/workflows/ci.yml, then run the cache tests.
ProjectatlasAgentCodexPermission modeworkspace-write
Full prompt
Add the branch name to the CI cache key prefix in .github/workflows/ci.yml, then run the cache tests.
✅Approvedby Alex Doe9:42 AM
Approving starts the agent with these settings. Only the owner's click counts, and the request expires in 15 minutes.
HansardAPP9:42 AM
⏳ Working Replies appear in this thread.⏳ Working for 1m 12s. Running a command.✅ Done in 2m 4s.
CodexDefault modelatlas
Stop
HansardAPP9:44 AM
The CI cache key now starts with the branch name, so two branches no longer share an entry. The cache tests pass: 18 passed, 0 failed.
CodexDefault model
Approve each action from the thread.
When a run asks to run a command or change files, Slack shows exactly what it asks, with Approve once and Deny. Only your click counts, and a request expires after 15 minutes.
Approvals in SlackHansardAPP9:43 AM
Allow this action?Permission request
The agent in atlas asks to run a command.
npm test -- --grep cache
Folder~/projects/atlas
Exact request
{
"approval_type": "command",
"data": {
"command": "npm test -- --grep cache",
"cwd": "~/projects/atlas"
}
}✅Approved onceby Alex Doe9:43 AM
Approve once allows this one action. Deny refuses it. Only the owner's click counts.
Runs stay in their project.
Every run gets a macOS sandbox that writes only to its project. It can't read Hansard's archive, your Slack credentials, or other folders. A teammate's run also gets a disposable home, without your instructions, memories, or plugins.
Who can start runsCodex in atlasmacOS sandbox
Can write
atlasThe project
Run folderIts own runtime files
Cannot read
Hansard's archive
Slack credentials
Other folders
Keychain
localhost
Your CLAUDE.md and AGENTS.md
Your memories
Your hooks, MCP servers, and plugins
Runs with the permission mode you chose for the project.A disposable home, removed 15 minutes after the last reply.
Message the agents already running.
Turn on Agents on this Mac, and a direct message reaches the agents in Running: agents lists them, and agent:1 sends your words to the first. They keep their own permissions, outside the sandbox.
Prompts from SlackHansardDirect message
Alex Doe10:02 AM
agents
HansardAPP10:02 AM
Agents on this Mac:1. Claude Code in relay, waiting: Review the worker shutdown path2. Codex in atlas, working: Version the cache keys3. Cursor in harbor, paused: Stream parser cleanupSend agent:<number> and your words to message one. A paused agent resumes first.
Alex Doe10:03 AM
agent:1 Run the shutdown tests again before you push.
HansardAPP10:03 AM
Sent to Claude Code in relay. Its next complete reply appears in this thread.
HansardAPP10:05 AM
Ran the shutdown tests again: 12 passed. Pushed the branch.
A digest, and a watcher that suggests work.
A channel can post a digest of its project's conversations by title, or have a watcher suggest tasks. A suggestion starts nothing until you approve it.
Channel roles# atlas
HansardAPP9:00 AM
atlas digest
6 conversations since the last digest.
- Version the cache keys
- Cache key collision in CI
- Bound retry backoff
- Schema migration dry run
- Document the recovery workflow
- Trace a flaky login test
Titles onlyOpen Hansard on the Mac to read them
HansardAPP9:15 AM
Approve this run?
The channel watcher suggests this task.
Add a test for the CI cache key prefix so a branch rename cannot share entries again.
ProjectatlasAgentClaude CodePermission modeplan
Approve and runDeny
Approving starts the agent with these settings. Only the owner's click counts, and the request expires in 15 minutes.
- Until a request expires
- 15 min
- Run requests and approvals expire if nobody answers.
- Person who approves
- 1
- Only your click starts a run or allows an action on your Mac.
- Runs at once
- 2
- The default for people on a channel's default access.
- Runs per person each day
- 10
- The default for people you let start runs.
More of Hansard
Personal Sync
Keep your whole archive in storage you own, with every computer you use in step with the others.
Teams
Share whole conversations from the repositories you choose with your team, under rules every member can read.
Sharing
Send one conversation as a web page anyone can open, a PDF, Markdown, or a trajectory file.
Insights
Rank models on your own work with your own Pareto frontier, and see what you pay against list price and how the work turns out.
Running and Review
Run each project's agents from one place, with tabs, changes, and terminals, and answer everything that waits on you in one queue.
Reading a run
Follow any agent run step by step: a trace of its calls, the agents it started, its context and cost, and Create PR.
Graph
See how your projects, conversations, files, commits, and decisions connect, and the evidence behind each link.
AI assistants
Let Claude.ai, ChatGPT, and other assistants search your agent conversations and memories, with your approval on your Mac.
Phone companion
Follow your agents from your phone, answer what they ask, and revive or start them while they run on your computer.
Accounts
Keep every Claude and Codex account in one place with its limits, route each conversation to one with allowance left, and cap API key spend.
Quality of life
Keep working when an account reaches its limit, and give every agent the MCP servers and skills you installed in one.
Put it on the record.
