stella/stella/packages/cli/skills/stella-cli/SKILL.md
stella-cli
Drive the stella command-line client (@stll/cli), a legal-workspace CLI whose command surface is generated from the stella MCP tool registry. Covers install, OAuth login, the full command tree grouped by domain, JSON output for scripting, the --input escape hatch for deep payloads, cursor pagination, destructive-op confirmation, and exit codes.
- Source repository stars
- 161
- Declared platforms
- 1
- Static risk flags
- 2
- Last source update
- 2026-08-04
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
@stll/cli is the command-line client for stella, an open-source legal workspace. Curated tools use stella ; generated capability commands use stella capability . Both surfaces are generated from the stella MCP tool registry, so they mirror exactly the tools a stella server expos…
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Declared | Source record | Install path and trigger |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/stella/stella --skill "packages/cli/skills/stella-cli"Inspect the Agent Skill "stella-cli" from https://github.com/stella/stella/blob/e30339d2f0178390f18059145b03651e6b244c4b/packages/cli/skills/stella-cli/SKILL.md at commit e30339d2f0178390f18059145b03651e6b244c4b. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Install
Review the “Install” section in the pinned source before continuing.
Review and apply the “Install” source section. - 02
Authenticate
Login runs an OAuth 2.1 authorization-code flow with PKCE against the stella server, using a loopback listener (http://127.0.0.1/callback, ephemeral port) to capture the code. Credentials are stored per server origin, so one machine can hold sessions for several servers at once.…
Login runs an OAuth 2.1 authorization-code flow with PKCE against the stella server, using a loopback listener (http://127.0.0.1/callback, ephemeral port) to capture the code. Credentials are stored per server origin, s… - 03
Conventions every agent must know
Output format: table is the default only on a TTY; piped/non-TTY output
Output format: table is the default only on a TTY; piped/non-TTY outputDeep payloads: any command accepts --input '' for the whole toolArray flags are repeatable: pass the flag once per value. - 04
Exit codes
The exit code lines up with the tool-error code: validationerror - 2, missingscope - 3, featuredisabled - 5, notfound - 6, confirmationrequired - 7, and ratelimited / unknowntool / internalerror - 4. A legacy server that tags only a bare featuredisabled code (no envelope) still…
The exit code lines up with the tool-error code: validationerror - 2, missingscope - 3, featuredisabled - 5, notfound - 6, confirmationrequired - 7, and ratelimited / unknowntool / internalerror - 4. A legacy server tha… - 05
Capability commands (full surface)
Beyond the curated commands above, the CLI generates 267 capability commands from the server's capability catalog: every safe handler that is not a curated tool, reached through the generic invokecapability path. Every generated command lives at stella capability ; multi-segment…
Discover: stella capability list [--domain ] [--access read|write]Invoke by id (forward-compatible with any server): stella capabilityFlags: each capability command derives flags from its input schema;
Permission review
Static risk signals and limitations
Runs scripts
The documentation asks the agent to run terminal commands or scripts.
npm i -g @stll/cliReads files
The documentation asks the agent to read local files, directories, or repositories.
argument object, `--input @file` to read JSON from a file, or `--input -` toEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 85/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 161 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- stella/stella
- Skill path
- packages/cli/skills/stella-cli/SKILL.md
- Commit
- e30339d2f0178390f18059145b03651e6b244c4b
- License
- Apache-2.0
- Collected
- 2026-08-04
- Default branch
- main
View the original SKILL.md
stella CLI
@stll/cli is the command-line client for stella, an open-source legal
workspace. Curated tools use stella <domain> <action>; generated capability
commands use stella capability <domain> <action>. Both surfaces are
generated from the stella MCP tool registry, so they mirror exactly the tools
a stella server exposes. Every command works for humans, scripts, and agents alike.
Install
npm i -g @stll/cli
Authenticate
stella auth login
Login runs an OAuth 2.1 authorization-code flow with PKCE against the stella
server, using a loopback listener (http://127.0.0.1/callback, ephemeral port)
to capture the code. Credentials are stored per server origin, so one machine
can hold sessions for several servers at once. Point at a non-default server
with --server <url>; scope the session with --scopes (default scopes:
openid profile email stella:read stella:search). stella auth whoami shows
the active session; stella auth logout clears it.
Conventions every agent must know
- Output format: table is the default only on a TTY; piped/non-TTY output
defaults to JSON. Force it with
--output json|table(or--json/--table). Always pass--output jsonwhen scripting or parsing. - Deep payloads: any command accepts
--input '<json>'for the whole tool argument object,--input @fileto read JSON from a file, or--input -to read JSON from stdin. Individual string flags also take gh-style@file/@-sugar (use@@to pass a literal leading@). - Array flags are repeatable: pass the flag once per value.
- Pagination: list commands take
--cursor <c>and--limit <n>;--allfollows cursors up to bounded ceilings. ThenextCursorresume hint is written to stderr (more: --cursor <c>) so piped JSON on stdout stays clean. - Destructive commands (delete/remove) prompt for confirmation on a TTY and
require
--yeswhen there is no TTY to confirm on. The CLI owns the server'sconfirmgate: it injectsconfirm: trueonly after you confirm (or pass--yes), so there is no separate--confirmflag to pass. - Errors print
error: <message>(andhint: <next step>when the server supplies one) to stderr as plain text, never to stdout, so a scripted stdout stays clean even with--output json. Every tool error carries a stable machinecodethat maps to the process exit code (see below): branch on the exit code, and read theerror:/hint:lines for the human-readable message. - MCP resources:
stella reference listenumerates static server resources;stella reference show <name>prints one.
Exit codes
| Code | Meaning |
|---|---|
| 0 | success |
| 1 | unexpected internal error |
| 2 | usage or input validation error |
| 3 | authentication required or failed (run stella auth login) |
| 4 | server or tool error |
| 5 | feature disabled for this organization |
| 6 | resource not found |
| 7 | confirmation aborted (a destructive op was declined) |
| 8 | permission denied (member role lacks the required permission) |
| 9 | usage entitlement exceeded |
| 10 | conflict with current state (duplicate or concurrent change) |
The exit code lines up with the tool-error code: validation_error -> 2,
missing_scope -> 3, feature_disabled -> 5, not_found -> 6,
confirmation_required -> 7, and rate_limited / unknown_tool /
internal_error -> 4. A legacy server that tags only a bare feature_disabled
code (no envelope) still maps to 5; anything else falls to 4.
Capability commands (full surface)
Beyond the curated commands above, the CLI generates 267
capability commands from the server's capability catalog: every safe handler
that is not a curated tool, reached through the generic invoke_capability
path. Every generated command lives at stella capability <domain> <action>;
multi-segment capability actions are flattened with hyphens into <action>.
- Discover:
stella capability list [--domain <d>] [--access read|write]enumerates them (paginated);stella capability describe <id>prints one capability's full input schema, scope, and flags. - Invoke by id (forward-compatible with any server):
stella capability invoke <id> --input '<json>', where the JSON is{ body?, params?, query? }. - Flags: each capability command derives flags from its input schema;
workspace-scoped capabilities take a required
--workspace <id>. Deep or ambiguous payloads use--input(the whole{ body?, params?, query? }). - Dry run:
--dry-runvalidates the input server-side and returns without executing (maps tovalidateOnly). - Destructive capabilities prompt on a TTY and need
--yesoff a TTY; the server's per-capability confirm gate is satisfied automatically once confirmed. - Exit codes are identical to the curated commands (see above).
Filing feedback
stella feedback send files a bug, feature request, or docs issue with the
maintainers. Content is sanitized server-side (emails, ids, secrets, URLs, and
IPs are redacted); never include tenant data, client or matter names, ids, or
secrets: describe the problem, reproduction steps, and expected vs actual
result. Pass --kind, --title, and --body.
- github (preferred): returns a prefilled new-issue URL and a
ghcommand the human opens and submits under their own GitHub account. The CLI never publishes anything itself.
Command tree
Generated from the MCP tool registry; Access is the OAuth scope the command
requires (request it at stella auth login --scopes).
| Domain | Command | Access | Notes |
|---|---|---|---|
| audit-log | stella audit-log list | admin_read | paginated |
| capability | stella capability describe | read | |
| capability | stella capability invoke | read | |
| capability | stella capability list | read | paginated |
| case-law | stella case-law read | read | paginated; windowed text |
| case-law | stella case-law search | search | paginated |
| clause | stella clause delete | knowledge_write | destructive (needs --yes off a TTY) |
| clause | stella clause list | read | paginated |
| clause | stella clause save | knowledge_write | |
| contact | stella contact delete | matters_write | destructive (needs --yes off a TTY) |
| contact | stella contact list | read | paginated |
| contact | stella contact lookup-registry | read | |
| contact | stella contact read | read | |
| contact | stella contact save | matters_write | |
| document | stella document delete | documents_write | destructive (needs --yes off a TTY) |
| document | stella document field set | documents_write | |
| document | stella document list | read | paginated |
| document | stella document properties list | read | paginated |
| document | stella document read | read | |
| document | stella document save | documents_write | |
| feedback | stella feedback send | feedback | |
| invoice | stella invoice list | read | paginated |
| legislation | stella legislation search | read | paginated |
| matter | stella matter delete | matters_write | destructive (needs --yes off a TTY) |
| matter | stella matter link-contact | matters_write | |
| matter | stella matter list | read | paginated |
| matter | stella matter save | matters_write | |
| organization | stella organization add-member | admin_write | |
| organization | stella organization remove-member | admin_write | destructive (needs --yes off a TTY) |
| organization | stella organization set-jurisdictions | onboarding | |
| organization | stella organization update-settings | admin_write | |
| playbook | stella playbook list | read | paginated |
| playbook | stella playbook run | knowledge_write | |
| rate | stella rate resolve | read | |
| search | stella search matters | search | paginated |
| search | stella search read | read | paginated; windowed text |
| task | stella task list | read | paginated |
| task | stella task save | matters_write | |
| template | stella template fill | templates | |
| template | stella template list | templates | paginated |
| template | stella template save | templates | |
| template | stella template save-filled new-document | documents_write + templates | |
| template | stella template save-filled new-version | documents_write + templates | |
| time-entry | stella time-entry delete | billing_write | destructive (needs --yes off a TTY) |
| time-entry | stella time-entry list | read | paginated |
| time-entry | stella time-entry save | billing_write | |
| usage | stella usage get | read |
Alternatives
Compare before choosing
PramodDutta/qaskills
Pairwise Test Generator
Generate optimized test combinations using pairwise (all-pairs) testing algorithms to achieve maximum coverage with minimum test cases across multiple input parameters
PramodDutta/qaskills
RAG Regression Testing
Gate RAG pipelines in CI with versioned golden eval sets, per-metric thresholds, baseline drift detection, and a build that fails when retrieval or answer quality regresses.
PramodDutta/qaskills
State Machine Test Generator
Generate comprehensive test cases from state machine models covering all states, transitions, guard conditions, and invalid transition attempts for workflow-heavy features
PramodDutta/qaskills
Test Case Generator from User Stories
Automatically generate comprehensive test cases from user stories and acceptance criteria using BDD patterns, equivalence partitioning, and risk-based prioritization