Skip to main content

Astra — a terminal AI assistant that understands natural language and drives your dev tools.

Project description

Astra CLI

A terminal-based AI assistant that understands natural language and drives your developer tools — git, docker, kubernetes, code, and more — through a multi-agent LangGraph pipeline with local memory and RAG.

All 18 build phases are complete. See docs/ARCHITECTURE.md for the full design and HANDOFF.md for exactly what's done and what's left (mostly external setup — PyPI trusted publishing, a working LangSmith key, a local k8s cluster).

Install

Once published, install with:

pip install astra-cli-agent    # or: uv tool install astra-cli-agent

This installs the astra command on your PATH — the PyPI distribution name (astra-cli-agent) is different from the command you actually run.

Install (development)

uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"

or with plain pip:

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Getting started

Astra needs at least one LLM provider before it can answer anything. The first time you run a command that needs one (astra ask, astra "<prompt>", astra chat) with none configured, it offers to walk you through setup right there — same as most terminal AI tools do on first run. You can also trigger it directly:

astra setup

This walks you through picking a provider (Groq, Anthropic, OpenAI, or a local Ollama server), pastes-and-tests your API key with one real, cheap request before saving it, and writes it to ~/.astra/.env — never logged, never committed. Run it again any time to add more providers (recommended, so FallbackRouter has something to fall back to).

astra hello     # sanity check: confirms install + config + whether a provider is set up
astra version   # print installed version
astra ask "..."  # one-shot LLM call, no agent pipeline
astra "explain this code"   # full natural-language agent pipeline
astra chat       # interactive REPL with streaming, history, autocomplete

Configuration

Astra reads, in order (each layer overrides the previous):

  1. packaged defaults (src/astra/config/defaults.yaml)
  2. ~/.astra/config.yaml (user overrides)
  3. environment variables, e.g. ASTRA_APP__LOG_LEVEL=DEBUG

Provider API keys live in ~/.astra/.env (written by astra setup) or a project-local .env (copy .env.example to get started by hand instead of the wizard).

Releasing (maintainers)

CI (.github/workflows/ci.yml) runs ruff/mypy/pytest on every push and PR to main.

Publishing to PyPI (.github/workflows/release.yml) uses PyPI's trusted-publishing (OIDC) flow — no token stored in this repo. One-time setup required on PyPI, done once by whoever owns the astra-cli-agent project there:

  1. Register the astra-cli-agent project on PyPI (or claim it if unclaimed).
  2. In that project's PyPI settings → Publishing, add a trusted publisher: this GitHub repo, workflow file release.yml, environment name pypi.
  3. In this repo's GitHub settings → Environments, create an environment named pypi (ideally with a required-reviewer rule, so a published Release doesn't auto-publish without a human glance).
  4. Cut a GitHub Release (tag + "Publish release" in the UI) — that triggers the workflow.

Development

pytest
ruff check .
mypy src

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

astra_cli_agent-0.1.0.tar.gz (148.8 kB view details)

Uploaded Source

Built Distribution

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

astra_cli_agent-0.1.0-py3-none-any.whl (97.9 kB view details)

Uploaded Python 3

File details

Details for the file astra_cli_agent-0.1.0.tar.gz.

File metadata

  • Download URL: astra_cli_agent-0.1.0.tar.gz
  • Upload date:
  • Size: 148.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for astra_cli_agent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4f04b0d0caa3d4998057de794e0734ce2afc9ce8851cb736324253e39ab07523
MD5 ad2c8fe58ce302be469435ba5fe36ca9
BLAKE2b-256 74762bf890b01e6cccb3f8bbfe07469253db947475447405851aa2c288333f3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for astra_cli_agent-0.1.0.tar.gz:

Publisher: release.yml on Subharjun/astra-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file astra_cli_agent-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: astra_cli_agent-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 97.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for astra_cli_agent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e7dd5632d40c5d8cf976a747f04a3eeed3cb93d11e3b3786f43c51f159470505
MD5 49b025d91d72edaef1b455430b4e71b0
BLAKE2b-256 978da39d161150831e2923bc58e9f41daf1ad9ca5c23f7ec0db2c2efd8169c56

See more details on using hashes here.

Provenance

The following attestation bundles were made for astra_cli_agent-0.1.0-py3-none-any.whl:

Publisher: release.yml on Subharjun/astra-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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