Source profileQuality 85/100Review permissions

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…

Best for

    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

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorDeclaredSource recordInstall path and trigger
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/stella/stella --skill "packages/cli/skills/stella-cli"
    Safe inspection promptEditorial

    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

    1. 01

      Install

      Review the “Install” section in the pinned source before continuing.

      Review and apply the “Install” source section.
    2. 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…
    3. 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.
    4. 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…
    5. 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

    medium · line 15

    The documentation asks the agent to run terminal commands or scripts.

    npm i -g @stll/cli

    Reads files

    low · line 38

    The documentation asks the agent to read local files, directories, or repositories.

    argument object, `--input @file` to read JSON from a file, or `--input -` to

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score85/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars161SourceRepository attention, not individual Skill quality
    Compatibility1 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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 json when scripting or parsing.
    • Deep payloads: any command accepts --input '<json>' for the whole tool argument object, --input @file to 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>; --all follows cursors up to bounded ceilings. The nextCursor resume 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 --yes when there is no TTY to confirm on. The CLI owns the server's confirm gate: it injects confirm: true only after you confirm (or pass --yes), so there is no separate --confirm flag to pass.
    • Errors print error: <message> (and hint: <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 machine code that maps to the process exit code (see below): branch on the exit code, and read the error:/hint: lines for the human-readable message.
    • MCP resources: stella reference list enumerates static server resources; stella reference show <name> prints one.

    Exit codes

    CodeMeaning
    0success
    1unexpected internal error
    2usage or input validation error
    3authentication required or failed (run stella auth login)
    4server or tool error
    5feature disabled for this organization
    6resource not found
    7confirmation aborted (a destructive op was declined)
    8permission denied (member role lacks the required permission)
    9usage entitlement exceeded
    10conflict 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-run validates the input server-side and returns without executing (maps to validateOnly).
    • Destructive capabilities prompt on a TTY and need --yes off 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 gh command 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).

    DomainCommandAccessNotes
    audit-logstella audit-log listadmin_readpaginated
    capabilitystella capability describeread
    capabilitystella capability invokeread
    capabilitystella capability listreadpaginated
    case-lawstella case-law readreadpaginated; windowed text
    case-lawstella case-law searchsearchpaginated
    clausestella clause deleteknowledge_writedestructive (needs --yes off a TTY)
    clausestella clause listreadpaginated
    clausestella clause saveknowledge_write
    contactstella contact deletematters_writedestructive (needs --yes off a TTY)
    contactstella contact listreadpaginated
    contactstella contact lookup-registryread
    contactstella contact readread
    contactstella contact savematters_write
    documentstella document deletedocuments_writedestructive (needs --yes off a TTY)
    documentstella document field setdocuments_write
    documentstella document listreadpaginated
    documentstella document properties listreadpaginated
    documentstella document readread
    documentstella document savedocuments_write
    feedbackstella feedback sendfeedback
    invoicestella invoice listreadpaginated
    legislationstella legislation searchreadpaginated
    matterstella matter deletematters_writedestructive (needs --yes off a TTY)
    matterstella matter link-contactmatters_write
    matterstella matter listreadpaginated
    matterstella matter savematters_write
    organizationstella organization add-memberadmin_write
    organizationstella organization remove-memberadmin_writedestructive (needs --yes off a TTY)
    organizationstella organization set-jurisdictionsonboarding
    organizationstella organization update-settingsadmin_write
    playbookstella playbook listreadpaginated
    playbookstella playbook runknowledge_write
    ratestella rate resolveread
    searchstella search matterssearchpaginated
    searchstella search readreadpaginated; windowed text
    taskstella task listreadpaginated
    taskstella task savematters_write
    templatestella template filltemplates
    templatestella template listtemplatespaginated
    templatestella template savetemplates
    templatestella template save-filled new-documentdocuments_write + templates
    templatestella template save-filled new-versiondocuments_write + templates
    time-entrystella time-entry deletebilling_writedestructive (needs --yes off a TTY)
    time-entrystella time-entry listreadpaginated
    time-entrystella time-entry savebilling_write
    usagestella usage getread

    Alternatives

    Compare before choosing