Skip to content

Latest commit

 

History

1,846 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stella

English | 中文

Stella — Shared AI coworkers for every team

⚠️ 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.

Why use Stella

  • 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.

Quick start

# 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 talking

You 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.

Connect your channels

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
QQ WebSocket Yes
Feishu WebSocket, no public IP Edit-in-place
DingTalk Stream mode, no public IP Final response
WeChat Long polling (iLink Bot) No

You can bind each channel to a specific agent in the Web UI.

MCP Tools

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

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.

Documentation

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

CLI reference

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 bundle

Development

Development 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 format

License

GNU Affero General Public License v3.0 or later. See LICENSE.

Releases

Packages

Used by

Contributors

Languages