Skip to main content

stackai

CI PyPI

An interactive AI agent in your terminal — like Claude Code, for StackAI.

Installation

pip install stackai

This installs the stack command.

The interactive agent

Just run stack (or stack chat) to start an interactive session:

stack

On a real terminal this opens a full-screen app (scrolling transcript + anchored input, à la Claude Code). Piped/non-interactive input falls back to a line REPL automatically; force it with stack chat --classic.

You get a streaming chat loop with tool use — the agent can read files, list directories, and run shell commands (with your approval) to help answer your questions. Responses render as Markdown with syntax-highlighted code blocks; extended thinking is streamed inline.

› what does pyproject.toml configure?

stack ⚙ read_file pyproject.toml
      … reads the file, then explains it

Slash commands

Command Description
/help show available commands
/clear reset the conversation
/tools list the tools the agent can call
/compact summarize older turns to shrink context
/model [name] switch model (Claude/OpenAI); no name opens a picker
/backend <name> switch backend (anthropic | openai | stackai)
/exit, /quit leave

Models

Run /model for a picker across Claude (Opus 4.8, Fable 5, Sonnet 5, Haiku 4.5) and OpenAI (GPT-5 Codex, GPT-5, o4-mini), or /model <name> to switch directly — the backend is inferred from the id (gpt-*/o* → OpenAI, claude-* → Anthropic; or force with openai:<id>). Switching starts a fresh session. OpenAI needs OPENAI_API_KEY (or stack config set openai_api_key …).

Backends

The agent is backend-pluggable: Anthropic (Claude, default), OpenAI (GPT/Codex), or a deployed StackAI workflow.

Anthropic (default) — set a key and go:

export ANTHROPIC_API_KEY=sk-ant-...
stack                          # or: stack chat -b anthropic -m claude-opus-4-8

StackAI — call one of your deployed workflows:

stack config set backend stackai
stack config set stackai_url  https://api.stack-ai.com/inference/v0/run/<org>/<flow>
stack config set stackai_api_key <key>
stack

Config is stored at ~/.config/stackai/config.json. Relevant keys: backend, model, anthropic_api_key, stackai_url, stackai_api_key, stackai_input_field (default in-0), stackai_output_field (default outputs).

Context compaction

Long sessions are kept from overflowing the model's context window by auto-summarization. When the transcript grows past a threshold, the oldest turns are replaced by a single summary while the most recent turns are kept verbatim; run /compact to trigger it manually.

Compaction rewrites history rarely and in one batch, so the compacted prefix stays stable between compactions — friendly to prompt caching, unlike a rolling window that would change the prefix every turn. It only applies to backends that send the full history (currently Anthropic). Relevant config keys:

Key Default Meaning
compact true enable auto-summarization
compact_threshold_tokens 120000 compact once the transcript exceeds this
compact_keep_tokens 40000 recent tokens kept verbatim after compact
stack config set compact_threshold_tokens 80000
stack config set compact false        # disable auto-compaction

Other commands

stack --version
stack hello [name]
stack config set|get|list|path

Development

This project uses uv.

uv sync                   # install deps into a local venv
uv run stack              # run the agent from source
uv run pytest             # run the test suite

Building & publishing

uv build                  # produces wheel + sdist in dist/
uv publish                # upload to PyPI

License

MIT

Download files

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

Source Distribution

stackai-0.8.0.tar.gz (75.4 kB view details)

Uploaded Source

Built Distribution

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

stackai-0.8.0-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

File details

Details for the file stackai-0.8.0.tar.gz.

File metadata

  • Download URL: stackai-0.8.0.tar.gz
  • Upload date:
  • Size: 75.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for stackai-0.8.0.tar.gz
Algorithm Hash digest
SHA256 ab1f1a186d987a1c291ceed32fe488e2f1e18c7f7b328be62d253495fa961786
MD5 9cfd8abe5e44353641d336cf032a4d21
BLAKE2b-256 4fd11769aa9834e881dc57f41e6a3f778e0031e90e6400c4d4965c42eb5bd8a3

See more details on using hashes here.

File details

Details for the file stackai-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: stackai-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 34.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for stackai-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 880b156bba9f21e2b8a6aaa993a3deaad1b905e2214c800df57690a8580004df
MD5 d50ed56eacc349ebe29370d8eb9625ff
BLAKE2b-256 216148bb51da0466523e347931b35f6332f40d6296bc7be68ee35cb71ae36ef7

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