stella

module
v0.39.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2026 License: AGPL-3.0

README

stella

English | 中文

Stella — AI partners for every person

⚠️ Under Heavy Development — Stella is not stable. APIs, config formats, and behavior may change without notice. Not recommended for production use.

Stella gives every person an AI partner that remembers them, works through trusted tools, and shows up where they already chat.

Use Stella as a teammate at work, a manager for home routines, or a private assistant for personal projects. Each user-agent relationship has its own memory, workspace, tools, schedules, and sandbox boundaries, so Stella can understand different people without flattening everyone into one profile.

Under the hood, Stella is a multi-tenant, multi-user, multi-agent system. Each agent can have its own role, model, skills, tools, schedules, workspace, and sandbox policy. Deploy Stella where you want, use your own model API keys, and talk to her from Telegram, QQ, Feishu, WeChat, the Web UI, or the terminal.

Why use Stella

  • Remembers each person. Memory is scoped per user per agent, so Stella understands different people differently.
  • Works through agents. Create agents for coding, writing, operations, family routines, research, and support.
  • Acts safely. Agents work in dedicated workspaces with sandbox policies and controlled tool access.
  • Meets you in chat. Telegram, QQ, Feishu, WeChat, the Web UI, and the terminal all become front doors to the same AI partner system.
  • 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
stella 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 install with go install github.com/CherryHQ/stella@latest or download a binary from Releases.

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

You can bind a channel to a specific agent, or let users switch agents with /agent.

Skills

Search, install, and manage skills from the CLI:

stella skill search "web scraping"
stella skill install --agent-id <agent-id> owner/repo@skill-name
stella skill list --agent-id <agent-id>

Documentation

Section What's inside Link
Getting Started Install, deploy, configure Quick Start
Guides Memory, scheduling, skills, notifications Guides
Channels Telegram, QQ, Feishu, WeChat setup Channels
Development Architecture, plugins, contributing Development

CLI reference

stella server                           # Start server; Web UI at http://localhost:25678
stella server --port 8080               # Custom port
stella skill search <query>             # Search skills.sh
stella skill install --agent-id <id> <name> # Install a skill for an agent
stella skill list --agent-id <id>       # List skills visible to an agent
stella scheduler list                   # List scheduled jobs
stella vault list                       # List stored secrets
stella version                          # Print version
stella upgrade                          # Self-update to latest release

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.

Directories

Path Synopsis
api
cmd
stella command
internal
auth/oidc/local
Package localoidc implements a minimal built-in OIDC issuer for Stella.
Package localoidc implements a minimal built-in OIDC issuer for Stella.
cli
db
memory
Package memory defines the pluggable memory provider contract.
Package memory defines the pluggable memory provider contract.
memory/memorytest
Package memorytest provides test doubles and conformance testing for memory.Provider implementations.
Package memorytest provides test doubles and conformance testing for memory.Provider implementations.
memory/memorywrite
Package memorywrite provides shared transactional write helpers for profile and soul memory updates.
Package memorywrite provides shared transactional write helpers for profile and soul memory updates.
recally
Package recally provides file operations for article storage.
Package recally provides file operations for article storage.
version
Package version exposes the stella binary version.
Package version exposes the stella binary version.
pkg
ai
channel
Package channel defines the public contract for channel plugins.
Package channel defines the public contract for channel plugins.
httpclient
Package httpclient provides a shared resty HTTP client factory with optional OpenTelemetry tracing.
Package httpclient provides a shared resty HTTP client factory with optional OpenTelemetry tracing.
plugins
Package plugins defines the shared plugin-facing contracts for Stella's unified plugin host.
Package plugins defines the shared plugin-facing contracts for Stella's unified plugin host.
plugins
sandbox/docker/dockerclient
Package dockerclient wraps the moby Go SDK (github.com/moby/moby/client) to manage sandbox containers for the docker sandbox backend.
Package dockerclient wraps the moby Go SDK (github.com/moby/moby/client) to manage sandbox containers for the docker sandbox backend.
sandbox/local
Hardening layers applied: process-group isolation on Unix, rlimits on Linux, bwrap filesystem/network isolation on Linux, macOS Seatbelt (sandbox-exec) filesystem and network isolation on macOS.
Hardening layers applied: process-group isolation on Unix, rlimits on Linux, bwrap filesystem/network isolation on Linux, macOS Seatbelt (sandbox-exec) filesystem and network isolation on macOS.
sandbox/none
Package none provides a no-op sandbox backend that runs commands directly on the host with the same permissions as the current user and no isolation.
Package none provides a no-op sandbox backend that runs commands directly on the host with the same permissions as the current user and no isolation.
Package resources bundles embedded resources (skills, souls, delegates, templates, and builtin plugin manifest) that Stella ships with its binary.
Package resources bundles embedded resources (skills, souls, delegates, templates, and builtin plugin manifest) that Stella ships with its binary.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL