Legal workspace: free to use, open to inspect, yours to keep.
Website · Manifesto · Issues · Contributing · Discord
Case law from public sources: read the decision, mark it up, and ask questions answered from its own paragraphs.
stella is an open-source legal workspace and data stack for legal teams, currently in beta.
Case law and public legal sources. Legal Atlas holds the corpus runner registry, corpus document kinds, and per-jurisdiction provision-citation grammars.
Business registries. Business Registries provides typed clients for national company and commercial registries, including ARES, Companies House, SEC EDGAR, KRS, PRH, VIES and more.
Anonymization. stella/anonymize provides WASM-backed anonymization tooling for legal AI workflows, with app integration through chat and document review.
Tabular Review. Extract structured answers from document sets into matter-scoped review tables for due diligence, discovery and research.
AI agent. Chat with matters, files, registries and connected tools, with approvals and source previews.
Skills and external connectors. Reusable prompts, tool definitions and MCP-compatible tools that extend the agent.
Web app. Matters, documents, Word .docx editing, review, research, chat and knowledge tools in one workspace.
Desktop app. Opens Office documents from stella in your local apps and saves edits back, and keeps a clipboard history that stays on your device.
stella MCP server. A central gateway to access and control stella data, including matters, documents and case law.
Outlook add-in. Coming soon.
Every screenshot below is stella itself, captured by its own end-to-end suite from a seeded demo organization and kept current by CI (how). The matters, parties and people in them are fictional.
AI agent. Cited answers across a whole matter, turned into a view you can take to the meeting. |
|
Matters. Documents, emails and versions per matter, with status, notes and owners. |
Tabular Review. Extract structured answers from a document set into a review table. |
Editor. Edit .docx in the browser, with version history and matter context beside the page. |
Templates. A shared library of firm templates, grouped by practice area. |
Hosted stella preview is available at my.stll.app.
Deploy the full stack (web, API, Postgres, Redis, Gotenberg, file storage) to Railway in one click; no email provider or AI key is needed for the first login.
Run stella on your own infrastructure: see the
self-hosting guide. The
self-host Compose file runs the API, document-processing worker, and Gotenberg;
the guide covers Postgres, RustFS object storage, Gotenberg, and the supported
Redis-compatible services. The frontend is a TanStack Start SSR app: build and
run apps/web/Dockerfile, or run
bun --filter @stll/web build followed by
HOST=0.0.0.0 PORT=3002 bun apps/web/dist/runtime.js.
Railway-specific service configuration is documented in
docs/railway.md.
- Bun
- Git
- Docker Desktop or Docker Engine
git clone https://github.com/stella/stella.git
cd stella
bun run devThis installs dependencies, prepares local env files, starts Docker services, pushes the database schema, starts the API at http://localhost:3001, starts the web app at http://localhost:3000, and opens the browser.
Cloud environments run bash .agents/cloud-setup.sh install once, then
bash .agents/cloud-setup.sh start each session. Startup restores local PostgreSQL
and Valkey and writes apps/api/.env.test, which the API test runners load.
Apply migrations next with
(cd apps/api && DB_LOAD_GATE_EBS_SIGNAL=disabled bun --env-file=.env.test run db:migrate); the explicit
signal setting applies to this disposable local database. Startup does not run migrations.
Setup installs dependencies without lifecycle scripts, so generated route and API
types are absent until a task needs them; run bun run generate first in that
case. Cloud tasks do not need the .ai/shared or template-pack submodules.
NODE_ENV=development STELLA_LOCAL_DEV=1 bun --filter @stll/api db:seed-test-user
NODE_ENV=development STELLA_LOCAL_DEV=1 bun --filter @stll/api db:seed-dev# Run only the web app, reusing an existing API
bun run dev:web
# Run only the API and local infrastructure
bun run dev:api
# Run without opening a browser
bun run dev --no-browser
# Skip setup steps when iterating
bun run dev --skip-install
bun run dev --skip-db-push
# Use shifted ports for parallel worktrees
bun run dev --dev-instance feature-aLocal development uses mock AI by default. To use real AI, set provider keys in
apps/api/.env and set USE_MOCK_AI="false".
stella does not aim to replace human judgment or provide legal advice. stella relies on AI models, which can produce incorrect or misleading output. We aim to ground AI flows in citations and traceable source material, but we encourage users to always validate the answers. AI summaries, notes and analyses of court decisions are generated by stella, not endorsed by the courts, and do not represent the courts' own reasoning; they are aids for legal professionals, and the decision text remains the authoritative source.
We welcome contributions. You can help not only by writing code, but also, e.g., by providing feedback, or translating. Please read CONTRIBUTING.md for more information and our policy on AI-generated contributions.
PRs must pass the linting and testing pipeline. You will be prompted to sign the Contributor License Agreement (CLA) by CI.
- Open an issue for questions, feedback or suggestions.
- Reach out to us for general queries at hello@stll.app.
- security@stll.app for security issues (see Security Policy).
Licensed under the Apache License 2.0. See LICENSE for the full license text and NOTICE for attribution of bundled third-party code.
- Workspace layout:
apps/*contains runnable applications,packages/*contains shared or publishable packages, and every workspace package uses the@stll/<name>naming convention. - stella web app
- stella desktop app
- stella landing site
- stella API
