arizuko › products › Slack team agent
One agent in your team’s Slack, but not one shared user. arizuko keeps the channel’s persona and thread context shared while each teammate gets their own memory, grant rules, and private web chat. The whole system runs on your server; default outbound traffic is the chat platform and the Anthropic API.
Most team Slack bots collapse everyone into one prompt or push everyone back into separate per-seat chat apps. Neither is what you want once a team starts depending on an agent.
slakd, proxyd, gated, davd, dashd, crackbox) with file-backed state under one instance directory.~/.claude/CLAUDE.md; the channel’s own ~/CLAUDE.md overrides and extends them — allowed tools, citation rules, refusals, voice for this channel. #eng-support behaves differently from #design from #incidents. The folder mounts at /dav/<channel>/ over WebDAV — edit in Finder, rclone, or any editor.users/<channel>-<id>.md inside the channel folder) — preferences, recurring tasks, prior conclusions. Alice has hers, Bob has his.eng/alice/) inherits from the channel and overrides only what differs — tweak one skill, keep everything else./dash/ for grants, routing, scheduled tasks, admission queue, and per-channel health.#eng-support · thread
alice @bot summarize the fix from the cold-start runbook for this thread
bot Bundle growth after deploy is coming from broad SDK imports.
Recommended: switch back to per-service imports.
source: /docs/runbooks/lambda-cold-start.md:67
bob @bot save that conclusion to my notes
bot Wrote notes/lambda-cold-start.md in your user area.
alice @bot remember: prefer per-service imports for any new lambda
bot Saved to your memory.
Same thread, same channel CLAUDE.md, different resolved user state. The answer is visible to the team; Bob’s write lands in Bob’s user area; Alice’s preference lands in her memory file. Shared deliberation, user-scoped state. None of Bob’s notes are visible to Alice; none of either user’s memory leaks into the channel’s shared context.
/srv/data/arizuko_<name>/. Backup is one tar of the directory; no DB dump.secrets table (AES-GCM at rest with AUTH_SECRET) and are held by the crackbox egress proxy. The container sees only an opaque placeholder; the real value is substituted into outbound HTTP headers or body at egress, scoped to allowed domains. The agent never has the real secret — it can’t leak what it doesn’t have.arizuko create acme
cd /srv/data/arizuko_acme
$EDITOR .env # set Slack/Discord/Telegram tokens; enable the adapters you want
arizuko run acme
# in Slack:
# create the Slack App, set bot token + signing secret in .env
# subscribe events to https://<your-host>/slack/events
# invite the bot to a channel; teammates sign in via OAuth at /auth/login
# linked identities resolve to the same user record; per-user state goes live
Full step-by-step is in the deployment guide. Per-channel CLAUDE.md override lives in the channel folder; edit via WebDAV or directly on the server. Channel-scoped API keys live in the encrypted secrets table; the egress proxy substitutes them into outbound requests so the container itself never holds them.