A Feishu long-connection connector for CLI-based LLM agents such as Codex, Claude, Gemini, and Kimi.
Alice runs as a local multi-bot runtime:
- receives Feishu messages over WebSocket
- routes messages into
chatorworkscenes - calls the configured LLM CLI backend
- sends progress, replies, files, and images back to Feishu
- exposes a local runtime API used by bundled skills
For Chinese documentation, see README.zh-CN.md.
- Multi-bot runtime from a single
config.yaml - Per-bot isolated
workspace,SOUL.md, and prompts, with sharedCODEX_HOMEby default - Scene-aware routing for casual chat and explicit work threads
- Runtime HTTP API for bundled skills and automation
- Bundled skills are materialized under
${ALICE_HOME:-~/.alice}/skills, linked into~/.agents/skills, and exposed to Claude via~/.claude/skills alice-code-armyuses Alice runtime role dispatch for planner / reviewer / executor flows; templates no longer hardwire concrete modelsalice-code-armycampaign repos now validate refined task packages (task.md/context.md/plan.md) viarepo-lint, require review beforeapprove-plan, and keep review files inside each task folderalice-code-armynow enforces post-run task invariants after each executor / reviewer round: executor rounds must hand off legally (review_pending,waiting_external, orblocked), and reviewer rounds must leave a valid task-local review artifactalice-code-armywaiting-for-human-approval cards now expose directApprove/Rejectbuttons in Feishu, with stale-round protection- Embedded prompts, skills, config example, and
SOUL.mdexample - Release installer for
systemd --userdeployments
- Go 1.25+ for source builds
- One installed and authenticated backend CLI:
codexclaudegeminikimi
- A Feishu app with:
- bot capability
im.message.receive_v1subscription- required message permissions
- long connection mode enabled
curl -fsSL https://cdn.jsdelivr.net/gh/Alice-space/alice@main/scripts/alice-installer.sh | bash -s -- installThen:
- Edit
${ALICE_HOME:-~/.alice}/config.yaml - Set
bots.*.feishu_app_idandbots.*.feishu_app_secret - Restart the service:
systemctl --user restart alice.servicecp config.example.yaml ~/.alice/config.yaml
# edit ~/.alice/config.yaml
go mod tidy
go test ./...
go run ./cmd/connector --feishu-websocketAlice uses a pure multi-bot config model.
Important concepts:
bots.<id>: one runtime botllm_profiles: named model presetsgroup_scenes.chat: conversational scene for group chatsgroup_scenes.work: explicit task scene for work threadstrigger_mode: legacy fallback when both scenes are disabledworkspace_dir/prompt_dir: per-bot runtime directoriescodex_home: optional per-bot override for the sharedCODEX_HOME(default:~/.codex)image_generation: optional roleplay image generation pipeline
Start from config.example.yaml.
Alice's operating model and chat / work scene behavior are documented in:
Additional docs:
Connector startup mode is now explicit: use --feishu-websocket for the real Feishu connector, or --runtime-only for local runtime/API-only execution. For isolated debug or temporary rerun runtimes, use alice-headless --runtime-only; headless binaries no longer allow Feishu websocket startup.
Each bot can define persona and machine-readable metadata in workspace/SOUL.md.
Current frontmatter keys accepted by Alice:
image_refsimage_generationoutput_contract
The embedded example is SOUL.md.example.
The installer script lives at scripts/alice-installer.sh.
Common commands:
# install or update the latest stable release
curl -fsSL https://cdn.jsdelivr.net/gh/Alice-space/alice@main/scripts/alice-installer.sh | bash -s -- install
# uninstall
curl -fsSL https://cdn.jsdelivr.net/gh/Alice-space/alice@main/scripts/alice-installer.sh | bash -s -- uninstallmake check
make build
make runmake check includes formatting, vet, unit tests, and connector race tests.
Contribution guidelines are in CONTRIBUTING.md.
- Day-to-day work happens on
dev dev -> maindrives the normal release path- Tagged releases are published through GitHub Actions
Workflow files: