kagura
Health Uyari
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Uyari
- process.env — Environment variable access in packages/live-cli/src/cli.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
This MCP server integrates Anthropic's Claude Agent SDK directly into Slack workspaces. It handles thread-aware conversations, streaming replies, and persistent memory by routing user requests to a targeted repository and executing the agent within that directory.
Security Assessment
Overall Risk: Medium. The tool requires several sensitive Slack and API tokens (bot token, app token, signing secret) to function, which are loaded via environment variables in the CLI. During operation, the agent interacts with local files and executes tasks within a specified local repository (`REPO_ROOT_DIR`), meaning it inherently has the ability to read and modify local files based on user prompts. The automated scan confirms there are no hardcoded secrets and no dangerous permissions requested. Network requests are primarily made to the Slack API to send and receive messages via Socket Mode.
Quality Assessment
The project is actively maintained, with its most recent code pushed today. However, its community footprint is currently very small, with only 5 stars on GitHub. This low visibility means it hasn't been widely battle-tested or reviewed by the broader developer community. Additionally, the repository lacks a license file. From a legal and compliance standpoint, this means all rights are technically reserved by the author, which may restrict how organizations can safely use, modify, or distribute the software.
Verdict
Use with caution — it handles local files and sensitive workspace credentials, requires a proper license for broad organizational use, and currently lacks widespread community trust.
A divine dance of AI in Slack — Kagura runs Claude Agent SDK natively in your workspace with thread-aware context, streaming UX, and persistent memory.
In Japanese mythology, Ame-no-Uzume performed a divine dance before the closed doors of Amano-Iwato — the heavenly rock cave where Amaterasu had hidden herself, plunging the world into darkness. Her dance, accompanied by music and laughter, drew the sun goddess back into the world. This was the first kagura (神楽) — "the entertainment of the gods."
Kagura brings that spirit to Slack. Run Anthropic Claude Agent SDK natively in your workspace — @mention the bot, it routes the session into the right repository, and replies with Slack-native rich text, live progress, and persistent memory.
Why
Running a Claude agent inside Slack requires gluing together thread context, workspace routing, streaming UX, session persistence, and memory — all adapted to Slack's API conventions. kagura handles that full lifecycle via Socket Mode, so you can focus on the agent's behavior.
How it works
@mention / Message Action
→ resolve target repo
→ load thread history (text + files + images)
→ run agent in repo cwd
→ stream progress → post rich-text reply and generated attachments
→ persist session & memory to SQLite
Features
Conversation — Thread-aware multimodal context (text + files + images), session resumption across restarts, layered memory (global / workspace / preferences).
Slack UX — Rich text rendering (headings, lists, code blocks, auto-splitting), live progress indicators, reaction lifecycle, native assistant typing.
Workspace routing — Each thread binds to a repo/workdir. Auto-detected from message text, or manually chosen via Message Action.
Agent control — Pluggable provider registry, stop via :octagonal_sign: reaction or message shortcut, slash commands for introspection (/usage, /workspace, /memory, /session, /version, /provider).
Operations — Auto-provisioned manifest (commands + shortcuts), online-presence heartbeat, Home tab, Zod-validated inputs, secret redaction in logs.
Getting started
git clone https://github.com/Innei/kagura.git
cd kagura
pnpm install
cp .env.example .env # fill in SLACK_BOT_TOKEN, SLACK_APP_TOKEN, SLACK_SIGNING_SECRET, REPO_ROOT_DIR
pnpm dev # or: pnpm build && pnpm start
See docs/configuration.md for the full environment variable reference, Slack app manifest, token rotation, and Docker deployment.
Documentation
| Document | Contents |
|---|---|
| Configuration | Environment variables, Slack manifest, token rotation, Docker |
| Architecture | Composition root, agent providers, rendering, workspace routing, memory model, project structure |
| Slash commands & controls | All slash commands, stop controls, reaction lifecycle |
| Live E2E testing | E2E setup, environment, running scenarios |
| Specs | Detailed subsystem specifications |
Scripts
| Command | Description |
|---|---|
pnpm dev |
Run with nodemon + tsx |
pnpm build |
Compile TypeScript |
pnpm test |
Run Vitest test suite |
pnpm start |
Run compiled output |
pnpm typecheck |
Type-check without emitting |
pnpm e2e |
Run all live Slack E2E cases |
pnpm e2e -- <id> |
Run a specific scenario by id |
pnpm e2e -- --interactive |
Interactive scenario picker |
pnpm e2e -- --list |
List all discovered scenarios |
pnpm e2e -- --search <term> |
Search/filter by keyword |
pnpm db:generate |
Generate Drizzle migrations |
pnpm db:migrate |
Apply migrations |
pnpm db:studio |
Open Drizzle Studio |
License
MIT © Innei, Released under the MIT License.
Personal Website · GitHub @Innei
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi