Skip to content

Latest commit

 

History

686 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slaude

CI Docker Release codecov Latest release Bun

Slack-native Claude Code runtime. One Slack thread = one persistent session.

Onboard an AI teammate into your Slack workspace. Inspired by hermes-agent, rebuilt Slack-only on the official @anthropic-ai/claude-agent-sdk. One container = one persona. Every thread remembers.

git clone https://github.com/barockok/slaude.git && cd slaude
bun install && bun run manifest > manifest.json   # paste into api.slack.com/apps → From manifest
cp .env.example .env && docker compose up -d --build

Documentation

Section What you will find Time
Getting Started 5-min quickstart, prerequisites, first DM test 5 min
Configuration Env vars, Slack tokens, Anthropic auth, SOUL.md schema, slaude.json 10 min
Architecture Session lifecycle, trust boundary, gateway ↔ agent ↔ MCP, persistence 8 min
Guides Engagement, approvals, /1on1, slash commands, cron, attachments
API Reference mcp__slaude_* tools, Markdown→mrkdwn, external MCP, skills, KB
Deployment Docker, Kubernetes, scale-out (gateway + node workers), health probes, upgrades, troubleshooting
Examples Runnable: first skill, first ingest, custom MCP, sim without Slack

Full site: https://barockok.github.io/slaude/ — source in docs/site/_content/, built by docs/site/build.mjs and published from main by CI. The generated HTML is not committed; run bun run docs to build it into docs/site/_site/.

At a glance

slaude architecture

Source: docs/internal/architecture.html — regenerate PNG via headless Chrome (see file header).

Feature What it means
Thread = Session SDK resume: keeps history across idle restarts (SLAUDE_IDLE_MINUTES default 15).
Two-layer persona Hardcoded baseline (output, engagement, approval discipline) + your SOUL.md (name, role, mandate, approvers).
MCP-only Slack I/O Every reply via mcp__slaude_slack__reply / edit / upload / request_approval. Markdown auto-converts to mrkdwn.
Approvals Agent runs YOLO, calls request_approval() for mutating work. Allowlist parsed from SOUL.md — agent never picks IDs.
Engagement @mention engages thread, mentioning someone else disengages. DMs always engaged. /1on1 locks thread.
Skills & KB ~/.slaude/skills/<slug>/SKILL.md hot-reloads; knowledge/ wikis compound via raw/wiki/ /ingest.
Simulation bun run sim verifies gates with no Slack — same createGateway, in-memory transport.

Trust boundary: LLM extracts SOUL.md → typed JSON → sha-cached; gateway verifies every Slack ID against raw text before any gate. Enforcement lives in gateway, never model. See Architecture.

Quickstart

# 1. Slack app from manifest
bun run manifest > manifest.json
# → api.slack.com/apps → Create New App → From manifest → paste
# → App-Level Tokens → connections:write (xapp-…) → Install to workspace (xoxb-…)

# 2. Env
cp .env.example .env   # fill SLACK_BOT_TOKEN, SLACK_APP_TOKEN, ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN

# 3. Run
bun run dev            # local — or —
docker compose up -d --build
curl localhost:8080/healthz   # {"status":"ok"}

Next: Getting StartedConfigurationDeployment

Project


slaude v0.44.0 · GitHub · Built with Bun + TypeScript + claude-agent-sdk

About

Native Claude Agent SDK with Harness specialized become as team member.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages