Skip to main content

Context-aware AI-assisted shell command planner and safety layer

Project description

CAIROS

CAIROS - Context-Aware Intelligent Runtime Operating Shell

CAIROS is a context-aware console assistant that lives inside your normal shell. It is useful offline through deterministic templates, and can use AI as a fallback when configured.

Package/distribution name: cairos-shell
Terminal command: cairos
GitHub repo: Saltybukket/cairos

Quickstart

Install from GitHub:

pipx install git+https://github.com/Saltybukket/cairos.git
cairos quicksetup

Use from any project:

cd ~/projects/my_repo
cairos doctor
cairos context
cairos check if repo is ready to commit

Optional AI quickstart:

export OPENROUTER_API_KEY="your-key"
cairos config ai use-openrouter-free
cairos config ai test

Windows users should run:

py -m pip install --user pipx
py -m pipx ensurepath
pipx install git+https://github.com/Saltybukket/cairos.git
cairos quicksetup

PyPI-Ready Install

There is no PyPI release yet. The repository is prepared for PyPI Trusted Publishing; after the first release is published, installation will be:

pipx install cairos-shell

Development Install

git clone https://github.com/Saltybukket/cairos.git
cd cairos
pipx install --editable .
cairos install-info

Everyday Use

cairos
cairos templates
cairos gui --check
cairos gui
cairos templates system
cairos plan create cpp mini project engine with class Player and main
cairos plan list wsl distros
cairos plan open project in vscode
cairos run create folder docs

Direct cairos <task> prints a plan. Use cairos run <task> to execute after confirmation.

Optional Local Web GUI

Install the optional GUI dependencies, then launch a localhost-only dashboard:

pipx inject cairos-shell fastapi uvicorn jinja2 python-multipart
cairos gui --check
cairos gui

For editable development installs:

python -m pip install -e ".[gui]"

The GUI shows config paths, AI profiles, provider setup, fallback settings, doctor output, and update/backup guidance. It binds locally, uses a temporary session token for state-changing POST requests, and never displays raw API keys.

Templates vs AI

Simple, clear commands use offline deterministic templates. Longer fuzzy requests are scored for confidence; low-confidence templates step back so AI fallback can handle the request when configured. Every template or AI plan is still safety-scanned before display or execution.

Debug routing decisions with:

cairos plan --debug-route <task>

CAIROS cannot permanently change the parent shell directory from a child process. Use cairos find-dir <name> or a shell wrapper from Shell Navigation for cd workflows.

Update

cairos update
cairos backup-config

GitHub installs are updated with the command printed by cairos update. Config, history and AI profiles live outside the package install and are preserved across package upgrades.

AI Profiles

Save multiple providers/models and switch quickly. Full provider setup lives in AI Providers.

cairos config ai use-openrouter-free
cairos config ai profiles
cairos config ai switch

Automatic profile fallback is enabled by default. If the active profile is rate-limited, out of credits, temporarily unavailable, missing a visible key, or points at an unavailable model, CAIROS tries another saved profile and prints a notice before the plan:

cairos config ai fallback status
cairos config ai fallback disable
cairos config ai fallback enable
cairos config ai fallback order openrouter-free gemini-flash groq-llama

CAIROS stores environment variable names, never raw API keys.

Key Locations

Global config lives in ~/.config/cairos/config.json on Linux/macOS/WSL and %APPDATA%\cairos\config.json on Windows. History lives in ~/.local/state/cairos/history.jsonl or %LOCALAPPDATA%\cairos\history.jsonl. Optional project-local rules live in .cairos/rules.json.

Documentation

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

cairos_shell-0.5.0a3.tar.gz (105.6 kB view details)

Uploaded Source

Built Distribution

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

cairos_shell-0.5.0a3-py3-none-any.whl (86.9 kB view details)

Uploaded Python 3

File details

Details for the file cairos_shell-0.5.0a3.tar.gz.

File metadata

  • Download URL: cairos_shell-0.5.0a3.tar.gz
  • Upload date:
  • Size: 105.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cairos_shell-0.5.0a3.tar.gz
Algorithm Hash digest
SHA256 e40186e4cc4eef89c7b6aab9ed7a640b8b92979508d93081323b398a2bbffc11
MD5 b36ccee0d9af16a1b044f6839235ffab
BLAKE2b-256 c1037b9e46db2b2f3396944a2885cdd572438fd242b03e763ff1fff233798408

See more details on using hashes here.

Provenance

The following attestation bundles were made for cairos_shell-0.5.0a3.tar.gz:

Publisher: publish.yml on Saltybukket/cairos

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

File details

Details for the file cairos_shell-0.5.0a3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for cairos_shell-0.5.0a3-py3-none-any.whl
Algorithm Hash digest
SHA256 1911c6ef80291ac9d97685aa6e8b1dba73d0f3482402e2e6fedb7a7685141ef4
MD5 76743564eb78203df2e8c592375d2f5d
BLAKE2b-256 680b8aff87d16e951607656fcc4e47b5050a37ad30c3248741befc5c0a514271

See more details on using hashes here.

Provenance

The following attestation bundles were made for cairos_shell-0.5.0a3-py3-none-any.whl:

Publisher: publish.yml on Saltybukket/cairos

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