Skip to main content

Command-line interface for the Lithora REST API (the agent-grade control plane)

Project description

lithora — the Lithora CLI

The terminal-native, agent-grade control plane for Lithora. Manage teams, projects, issues, automations — and drive the confirmation-gated AI agent — without leaving your shell or your CI pipeline.

Built on the official lithora Python SDK (one shared HTTP core, nothing vendored). v0.2beta.

Install

pipx install lithora-cli         # recommended (isolated)
# or
pip install lithora-cli

This installs the lithora command. Requires Python 3.9+. Optional: keyring (used automatically for OS-keychain token storage; falls back to a 600-mode file).

Quickstart (every command here is real)

# 1. Point at your API (defaults to https://api.lithora.io)
export LITHORA_BASE_URL=http://localhost:8000          # optional, local dev

# 2. Log in (password is prompted securely; token → OS keychain or 600-mode file)
lithora login --email you@example.com
lithora whoami
lithora doctor                                         # diagnose auth/connectivity

# 3. Projects & issues
lithora teams list
lithora projects create --name "Q3 Launch" --team <team_id>
lithora tasks create --title "Wire up billing" --project <project_id> --priority high
lithora tasks list --project <project_id> --status todo
lithora tasks status <task_id> in_progress

# 4. The AI agent — propose → approve in the terminal → apply
lithora ai "break the autosave issue into a parent task and subtasks"
#   → renders the plan, asks "Approve? [y]es / [n]o", then applies on approval.

# 5. Automations, GitHub, the work graph
lithora automations list
lithora automations execute <automation_id>
lithora work-items graph --team <team_id>
lithora work-items pr-status <task_id>

The confirmation gate (the keystone)

The agent never writes without your approval. lithora ai "<prompt>" shows the proposed plan and waits:

ACTION PLAN  (requires confirmation)
  1. + task: Add autosave to the editor   [acme/web#418]
       - subtask: Persist drafts to localStorage
       - subtask: Debounced autosave on change
  Summary: Agent will create 1 task + 3 subtasks
Approve? [y]es / [n]o:
  • Interactive: y applies it, n discards it.
  • CI / non-interactive: add --yes to auto-approve, e.g. lithora ai chat "<prompt>" --yes (the plan is still printed first). lithora ai "<prompt>" is shorthand for lithora ai chat, so the flag works on both forms. Without a TTY and without --yes, the CLI refuses to write and exits 2 — so an unattended run can never silently mutate your workspace.
  • Overnight digests: lithora ai pending lists plans the scheduled triage agent staged; approve one with lithora ai confirm <action_id> --session <sid>.

Output & scripting

lithora tasks list --project P -o json | jq '.tasks[].title'   # stable JSON
lithora -o json automations list                               # machine-readable
  • --output table (default, colorized on a TTY) · --output json (stable, for CI) · --output yaml.
  • Exit codes: 0 ok · 2 usage / confirmation-needed · 3 auth · 4 not-found · 5 conflict · 22 invalid input · 130 interrupted.

Profiles, config & tokens

lithora profile list
lithora --profile work whoami            # target a different account/org
lithora token create --name "GitHub CI" --scope tasks:write --expires-in-days 90
lithora token list
lithora token revoke <token_id>
  • Config lives in ~/.lithora/config.json (dir 700 / file 600). The bearer token is stored in your OS keychain when available, else the 600-mode file.
  • Precedence: flag > env (LITHORA_TOKEN/LITHORA_BASE_URL/LITHORA_PROFILE) > profile > default.
  • The password is never accepted as a flag value (argv/history leak). Use the prompt or --password-stdin in CI.

CI example (GitHub Actions)

- name: Create a Lithora issue from a failing build
  if: failure()
  env:
    LITHORA_TOKEN: ${{ secrets.LITHORA_PAT }}      # a scoped PAT (lithora token create)
  run: |
    pipx install lithora-cli
    lithora tasks create --title "CI failed on ${{ github.sha }}" \
      --project "$LITHORA_PROJECT" --priority high -o json

Command map

login · logout · whoami · doctor · --version teams · projects · tasks · work-items · automations · github · search ai (chat / pending / confirm / sessions) · token · profile

Run lithora <group> --help for the full surface. See EXPANSION_PLAN.md for the roadmap.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lithora_cli-0.2.0.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lithora_cli-0.2.0-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file lithora_cli-0.2.0.tar.gz.

File metadata

  • Download URL: lithora_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for lithora_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 83feb0cc2910159a8bed888d4eda30930cc527e86796660d45e0dd972dac0b13
MD5 fbe4af39ba291d1d0bdf6bdf6992fb5d
BLAKE2b-256 9a5bcbe0be205a7a196154c25208fce68a1496420504dc4b6aba8fc0ea540b87

See more details on using hashes here.

File details

Details for the file lithora_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: lithora_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for lithora_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7054284cb2e2dd1cdb8ebc4a7a6757422166fe4231521e5d1079c196b37eb5fe
MD5 d37eaa8791c12ec2575e87552aaf5503
BLAKE2b-256 24ae4ace11a52eb712716ecc991bd54f11c15a28fe86636c9bf40dfba956f85f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page