English | 中文
⚠️ Under Heavy Development — Stella is not stable. APIs, config formats, and behavior may change without notice. Not recommended for production use.
Stella turns the expertise your team repeats — finance, HR, engineering, research — into shared AI coworkers. Set an agent up once; everyone else just asks it in the chat tools they already use.
A domain owner gives an agent its instructions, skills, tools, knowledge, and memory rules. After that, nobody has to learn the finance system, the recruiting tool, or the internal toolchain to move work forward — they tell the agent the goal, and it does the work within the boundaries you set. Each person gets their own memory with the agent, so Stella understands different teammates without flattening everyone into one profile.
Under the hood it's a single-tenant, multi-user, multi-agent system: one deployment is one trust boundary, many people can rely on it at once, and each agent has its own role, model, skills, tools, schedules, workspace, and safety boundaries. Deploy it where you want, use your own model API keys, and reach it from Telegram, Discord, QQ, Feishu, DingTalk, WeChat, the Web UI, or the terminal.
Small teams and individual developers can run the same setup — one agent doing the back-office work no one has time for — but Stella is built first for teams who keep paying their experts to answer the same questions.
- Anyone just asks. A teammate doesn't learn the finance or HR system to get help — they ask the agent in chat, and it does the work.
- One expert, shared by everyone. A domain owner builds an agent once; the whole team reuses it instead of interrupting the specialist.
- Remembers each teammate. Memory is scoped per user per agent, so nobody re-explains their context.
- Acts within boundaries you set. Agents work in dedicated workspaces with sandbox policies and controlled tool access, and stop for human review where you require it.
- Lives in the chat you already use. Telegram, Discord, QQ, Feishu, DingTalk, WeChat, the Web UI, and the terminal are all front doors to the same agents.
- Keeps routines moving. Schedule reminders, recurring jobs, reading digests, and background tasks that persist across restarts and notify the right people.
# 1. Install
brew install CherryHQ/tap/stella
# 2. Start the server
stellad server
# 3. Open the Web UI at http://localhost:25678
# Add your provider and API key under Providers
# 4. Open Chat and start talkingYou can also download binaries from Releases, or build from source with git clone and mise run build. go install is not supported: the binary embeds generated code, the Web UI, and the bundled runtimes, none of which are in version control.
See the full quickstart guide for detailed steps.
All channels share the same memory. Chat from one, switch to another, and Stella picks up where you left off.
| Channel | How to connect | Streaming support |
|---|---|---|
| Terminal | Built-in TUI | Token-by-token |
| Telegram | Long polling, no public IP | Yes |
| Discord | Gateway WebSocket | Final response |
| WebSocket | Yes | |
| Feishu | WebSocket, no public IP | Edit-in-place |
| DingTalk | Stream mode, no public IP | Final response |
| Long polling (iLink Bot) | No |
You can bind each channel to a specific agent in the Web UI.
Stella connects agents to remote MCP (Model Context Protocol) servers over
streamable HTTP or server-sent events. MCP declarations live in ordinary files:
standalone servers use mcp/<name>.json; servers shipped inside a package live
with that package. Authentication references point to encrypted secrets, and
OAuth grants live separately from the declaration.
Resources use four scopes: system, system_agent, user, and user_agent.
For a package, the most specific complete package wins in the order
user_agent > user > system_agent > system; an override replaces the
whole package. A copy is independent and does not follow later edits in its
source scope. Editing a file takes effect on the next turn, while the current
turn keeps its captured content. Deleting a declaration removes the resource
but does not disconnect its OAuth grant; use Disconnect when local access
must be revoked. Disconnect closes the local connection and blocks late refresh;
remote provider revocation is not guaranteed. Resource bytes and installation
caches remain until verified maintenance can safely clean them up. The local
backend enforces its sandbox policy but cannot prove detached descendants
stopped; the none backend provides no reliable process isolation.
Skills are reusable playbooks that teach Stella how to perform specific tasks. They are ordinary files in the project, agent, user, or system resource roots, or inside a complete package. Stella selects the winning complete package and then its Skills, CLI entries, environment bindings, and MCP declarations together. A narrower package replaces the broader package; a copied package is independent and is not upgraded automatically. File edits apply on the next turn, and an admitted turn keeps its captured view.
The Web UI and API let you edit complete packages and standalone Skills or MCP
files in the scope you choose. settings.json can disable a resource or apply
administrator limits without changing its declaration. OAuth Disconnect is a
separate action from deleting a file. Resource bytes are retained until active
processes and descendants can be proven stopped. The none backend provides
no reliable process isolation. See the Skills guide
for precedence and editing details.
| Section | What's inside | Link |
|---|---|---|
| Getting Started | Install, deploy, configure | Quick Start |
| Guides | Memory, scheduling, skills, notifications | Guides |
| Channels | Telegram, Discord, QQ, Feishu, DingTalk, WeChat | Channels |
| Webhooks | Personal HTTP invocation capabilities | Webhooks |
| Admin | Kubernetes sandbox (local/dev) | Kubernetes |
| Development | Architecture, plugins, contributing | Development |
stellad server # Start server; Web UI at http://localhost:25678
stellad server --port 8080 # Custom port
stellad upgrade # Self-update to latest release
stellad upgrade 0.50.0 # Self-update to a specific release
stellad version # Print version
stellad vault keygen # Generate a vault bootstrap key
stellad system-bundle revision # Print the builtin Skill bundle revision
stellad system-bundle install # Install the verified builtin Skill bundle
stellad system-bundle verify # Verify the builtin Skill bundleDevelopment requires mise. On a fresh clone:
mise run setup # Set up dev environment and pre-commit hooks
mise run build # Build binary
mise run test # Run tests
mise run format # Lint and formatGNU Affero General Public License v3.0 or later. See LICENSE.