Metadata-Version: 2.4
Name: zdqsgithub-alice-cli
Version: 0.2.0
Summary: Alice CLI — a governed agent for research and model development
Author: AstralSeek Research, alice-cli contributors
License-Expression: MIT
Project-URL: Repository, https://github.com/zdqsgithub/alice-cli
Project-URL: Issues, https://github.com/zdqsgithub/alice-cli/issues
Project-URL: Documentation, https://github.com/zdqsgithub/alice-cli#readme
Requires-Python: <3.14,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai==2.24.0
Requires-Dist: certifi==2026.5.20
Requires-Dist: python-dotenv==1.2.2
Requires-Dist: fire==0.7.1
Requires-Dist: httpx[socks]==0.28.1
Requires-Dist: rich==14.3.3
Requires-Dist: tenacity==9.1.4
Requires-Dist: pyyaml==6.0.3
Requires-Dist: ruamel.yaml==0.18.17
Requires-Dist: requests==2.33.0
Requires-Dist: jinja2==3.1.6
Requires-Dist: pydantic==2.13.4
Requires-Dist: prompt_toolkit==3.0.52
Requires-Dist: wcwidth==0.6.0
Requires-Dist: croniter==6.0.0
Requires-Dist: packaging==26.0
Requires-Dist: Markdown==3.10.2
Requires-Dist: PyJWT[crypto]==2.13.0
Requires-Dist: urllib3<3,>=2.7.0
Requires-Dist: cryptography==46.0.7
Requires-Dist: tzdata==2025.3; sys_platform == "win32"
Requires-Dist: psutil==7.2.2
Requires-Dist: websockets==15.0.1
Requires-Dist: pathspec==1.1.1
Requires-Dist: fastapi<1,>=0.104.0
Requires-Dist: uvicorn[standard]<1,>=0.24.0
Requires-Dist: python-multipart<1,>=0.0.9
Requires-Dist: ptyprocess<1,>=0.7.0; sys_platform != "win32"
Requires-Dist: pywinpty<3,>=2.0.0; sys_platform == "win32"
Requires-Dist: Pillow==12.2.0
Requires-Dist: concurrent-log-handler==0.9.29; sys_platform == "win32"
Provides-Extra: alice-ml
Requires-Dist: numpy==2.4.3; extra == "alice-ml"
Requires-Dist: pyarrow==25.0.0; extra == "alice-ml"
Requires-Dist: scikit-learn==1.9.0; extra == "alice-ml"
Provides-Extra: alice-research
Requires-Dist: defusedxml==0.7.1; extra == "alice-research"
Provides-Extra: alice-ml-torch
Requires-Dist: numpy==2.4.3; extra == "alice-ml-torch"
Requires-Dist: pyarrow==25.0.0; extra == "alice-ml-torch"
Requires-Dist: scikit-learn==1.9.0; extra == "alice-ml-torch"
Requires-Dist: torch==2.13.0; extra == "alice-ml-torch"
Provides-Extra: anthropic
Requires-Dist: anthropic==0.87.0; extra == "anthropic"
Provides-Extra: exa
Requires-Dist: exa-py==2.10.2; extra == "exa"
Provides-Extra: firecrawl
Requires-Dist: firecrawl-py==4.17.0; extra == "firecrawl"
Provides-Extra: parallel-web
Requires-Dist: parallel-web==0.4.2; extra == "parallel-web"
Provides-Extra: fal
Requires-Dist: fal-client==0.13.1; extra == "fal"
Provides-Extra: edge-tts
Requires-Dist: edge-tts==7.2.7; extra == "edge-tts"
Provides-Extra: modal
Requires-Dist: modal==1.3.4; extra == "modal"
Provides-Extra: daytona
Requires-Dist: daytona==0.155.0; extra == "daytona"
Provides-Extra: hindsight
Requires-Dist: hindsight-client==0.6.1; extra == "hindsight"
Provides-Extra: dev
Requires-Dist: debugpy==1.8.20; extra == "dev"
Requires-Dist: pytest==9.0.2; extra == "dev"
Requires-Dist: pytest-asyncio==1.3.0; extra == "dev"
Requires-Dist: mcp==1.26.0; extra == "dev"
Requires-Dist: starlette==1.0.1; extra == "dev"
Requires-Dist: ty==0.0.21; extra == "dev"
Requires-Dist: ruff==0.15.10; extra == "dev"
Requires-Dist: setuptools==81.0.0; extra == "dev"
Provides-Extra: messaging
Requires-Dist: python-telegram-bot[webhooks]==22.6; extra == "messaging"
Requires-Dist: discord.py[voice]==2.7.1; extra == "messaging"
Requires-Dist: aiohttp==3.14.1; extra == "messaging"
Requires-Dist: brotlicffi==1.2.0.1; extra == "messaging"
Requires-Dist: slack-bolt==1.29.0; extra == "messaging"
Requires-Dist: slack-sdk==3.43.0; extra == "messaging"
Requires-Dist: qrcode==7.4.2; extra == "messaging"
Provides-Extra: cron
Provides-Extra: slack
Requires-Dist: slack-bolt==1.29.0; extra == "slack"
Requires-Dist: slack-sdk==3.43.0; extra == "slack"
Requires-Dist: aiohttp==3.14.1; extra == "slack"
Provides-Extra: matrix
Requires-Dist: mautrix[encryption]==0.21.0; extra == "matrix"
Requires-Dist: aiosqlite==0.22.1; extra == "matrix"
Requires-Dist: asyncpg==0.31.0; extra == "matrix"
Requires-Dist: aiohttp-socks==0.11.0; extra == "matrix"
Requires-Dist: aiohttp==3.14.1; extra == "matrix"
Provides-Extra: wecom
Requires-Dist: defusedxml==0.7.1; extra == "wecom"
Provides-Extra: cli
Requires-Dist: simple-term-menu==1.6.6; extra == "cli"
Provides-Extra: tts-premium
Requires-Dist: elevenlabs==1.59.0; extra == "tts-premium"
Provides-Extra: voice
Requires-Dist: faster-whisper==1.2.1; extra == "voice"
Requires-Dist: sounddevice==0.5.5; extra == "voice"
Requires-Dist: numpy==2.4.3; extra == "voice"
Provides-Extra: pty
Provides-Extra: honcho
Requires-Dist: honcho-ai==2.2.0; extra == "honcho"
Provides-Extra: supermemory
Requires-Dist: supermemory==3.50.0; extra == "supermemory"
Provides-Extra: mem0
Requires-Dist: mem0ai==2.0.10; extra == "mem0"
Provides-Extra: vision
Provides-Extra: mcp
Requires-Dist: mcp==1.26.0; extra == "mcp"
Requires-Dist: starlette==1.0.1; extra == "mcp"
Provides-Extra: nemo-relay
Requires-Dist: nemo-relay<1.0,>=0.5; extra == "nemo-relay"
Provides-Extra: homeassistant
Requires-Dist: aiohttp==3.14.1; extra == "homeassistant"
Provides-Extra: sms
Requires-Dist: aiohttp==3.14.1; extra == "sms"
Provides-Extra: teams
Requires-Dist: microsoft-teams-apps==2.0.13.4; extra == "teams"
Requires-Dist: aiohttp==3.14.1; extra == "teams"
Provides-Extra: computer-use
Requires-Dist: mcp==1.26.0; extra == "computer-use"
Requires-Dist: starlette==1.0.1; extra == "computer-use"
Provides-Extra: acp
Requires-Dist: agent-client-protocol==0.9.0; extra == "acp"
Provides-Extra: mistral
Requires-Dist: mistralai==2.4.8; extra == "mistral"
Provides-Extra: bedrock
Requires-Dist: boto3==1.42.89; extra == "bedrock"
Provides-Extra: vertex
Requires-Dist: google-auth==2.55.1; extra == "vertex"
Provides-Extra: azure-identity
Requires-Dist: azure-identity==1.25.3; extra == "azure-identity"
Provides-Extra: termux
Requires-Dist: python-telegram-bot[webhooks]==22.6; extra == "termux"
Requires-Dist: zdqsgithub-alice-cli[cron]; extra == "termux"
Requires-Dist: zdqsgithub-alice-cli[cli]; extra == "termux"
Requires-Dist: zdqsgithub-alice-cli[pty]; extra == "termux"
Requires-Dist: zdqsgithub-alice-cli[mcp]; extra == "termux"
Requires-Dist: zdqsgithub-alice-cli[honcho]; extra == "termux"
Requires-Dist: zdqsgithub-alice-cli[acp]; extra == "termux"
Provides-Extra: termux-all
Requires-Dist: zdqsgithub-alice-cli[termux]; extra == "termux-all"
Requires-Dist: zdqsgithub-alice-cli[google]; extra == "termux-all"
Requires-Dist: zdqsgithub-alice-cli[homeassistant]; extra == "termux-all"
Requires-Dist: zdqsgithub-alice-cli[sms]; extra == "termux-all"
Requires-Dist: zdqsgithub-alice-cli[web]; extra == "termux-all"
Provides-Extra: dingtalk
Requires-Dist: dingtalk-stream==0.24.3; extra == "dingtalk"
Requires-Dist: alibabacloud-dingtalk==2.2.42; extra == "dingtalk"
Requires-Dist: qrcode==7.4.2; extra == "dingtalk"
Provides-Extra: feishu
Requires-Dist: lark-oapi==1.6.8; extra == "feishu"
Requires-Dist: qrcode==7.4.2; extra == "feishu"
Provides-Extra: google
Requires-Dist: google-api-python-client==2.194.0; extra == "google"
Requires-Dist: google-auth-oauthlib==1.3.1; extra == "google"
Requires-Dist: google-auth-httplib2==0.3.1; extra == "google"
Provides-Extra: youtube
Requires-Dist: youtube-transcript-api==1.2.4; extra == "youtube"
Provides-Extra: web
Requires-Dist: fastapi==0.133.1; extra == "web"
Requires-Dist: uvicorn[standard]==0.41.0; extra == "web"
Requires-Dist: starlette==1.0.1; extra == "web"
Requires-Dist: python-multipart==0.0.27; extra == "web"
Provides-Extra: all
Requires-Dist: zdqsgithub-alice-cli[cron]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[cli]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[pty]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[mcp]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[homeassistant]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[sms]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[acp]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[google]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[web]; extra == "all"
Requires-Dist: zdqsgithub-alice-cli[youtube]; extra == "all"
Dynamic: license-file

# Alice CLI

Alice CLI is a governed research and model-development agent maintained by AstralSeek Research.

It combines a terminal agent, tools, skills, persistent sessions, optional messaging, and auditable model-development workflows. Private data and artifacts remain local unless the user explicitly approves an operation that requires another boundary.

## Install

Clone the maintained repository directly:

```bash
git clone https://github.com/zdqsgithub/alice-cli.git
cd alice-cli
```

The managed installers provision Alice CLI and its pinned dependencies. The default data home is `~/.alice` on Unix-like systems and `%LOCALAPPDATA%\alice` on native Windows.

## Quick Install

Linux, macOS, WSL2, and Termux:

```bash
curl -fsSL https://raw.githubusercontent.com/zdqsgithub/alice-cli/main/scripts/install.sh | bash
alice # start chatting!
```

Windows PowerShell:

```powershell
iex (irm https://raw.githubusercontent.com/zdqsgithub/alice-cli/main/scripts/install.ps1)
alice
```

npm terminal CLI (Node.js 20+ and `uv` required; it provisions CPython 3.12):

```bash
brew install uv # macOS example; see https://docs.astral.sh/uv/getting-started/installation/
npm install --global @zdqsgithub/alice-cli
alice --help
```

See [the npm launcher documentation](packages/npm-cli/README.md) for runtime,
diagnosis, and uninstall details. The npm package provides the terminal
command; the macOS desktop DMG remains a separate GUI distribution.

## First run

Configure a provider, select a model, review tools, and verify the installation:

```bash
alice setup
alice model
alice tools
alice doctor
```

Update a managed checkout with `alice update`.

## CLI and TUI

Start the classic interactive CLI with `alice`. Start the React and Ink terminal interface with:

```bash
alice --tui
```

Useful commands include:

```bash
alice model      # select a configured provider and model
alice tools      # review enabled tools
alice doctor     # diagnose installation and runtime issues
alice update     # update the maintained checkout
alice --help     # inspect the finite public command surface
```

Inside a session, `/help` shows available slash commands. Account, subscription, payment, and vendor-portal routes are not part of the Alice distribution.

## Governed model-development capabilities

Alice separates intake, development, promotion, and formal evaluation. Plans freeze the target, split policy, primary metric, optimization direction, tie-break rules, candidate space, and budgets before model comparison. Search cannot inspect a sealed test, retains negative attempts, and cannot promote a candidate or open formal evaluation without a separate human approval.

Current bounded capabilities include:

- `alice_ml`: model-ready CSV/Parquet tables and labeled NPZ matrices for governed binary classification and regression, deterministic controls, immutable artifacts, and aggregate reports.
- `alice_research`: offline or explicitly authorized evidence workflows.
- `alice_autoresearch`: optional finite candidate search with a declared search space, append-only ledger, and human promotion.
- `alice_graph`: privacy-projected advisory graphs over allowlisted aggregate records. Graph values are never model features.
- `alice_methylation`: the fixed M8 public methylation bundle and external-benchmark lifecycle.

The completed M6 boundary is intentionally narrow. M6A uses the optional `cardio_benchmark` path for local-only, aggregate-only replay and produces a combined benchmark receipt. M6B supports model-ready multimodal comparison only from one prejoined CSV/Parquet matrix and can compare `late_fusion_logistic` with declared single-modality baselines. It does not parse, join, embed, or train directly from raw text, PDFs, images, ECG waveforms, audio, or video.

M6.1 remains development-only. M6.1A applies the generic adapter-development contract to a fixed tabular cardio profile with a patient-purged 2020–2023 train and 2024 validation split; it does not reopen the consumed final test. M6.1B proves the same generic path on scikit-learn's bundled public Wisconsin breast-cancer dataset without importing cardio code. M6.1C records the four-state CEO risk audit, where engineering evidence can close or mitigate scoped risks while real-world value remains `blocked_external` until approved external evidence exists.

M8B performs governed grouped development and a separately approved GSE79775 external evaluation through `evaluate_formal` exactly once. Install `zdqsgithub-alice-cli[alice-ml]` and use `alice-methylation-m8b-verify` for record-only verification without re-evaluation.

M8C is a restricted aging QA path. `alice-aging-m8c-verify` keeps `training_allowed=false`, uses synthetic conformance cases, does not read participant media, does not call the aging training launcher, and remote egress remains disabled.

M8D uses `alice-m8-verify` to derive content-addressed `dcau_` and `mcau_` completion records from existing evidence. It does not reopen the formal test. The external objective `not_met` remains the scientific result, and engineering completion is not arbitrary-dataset support.

## Privacy and approval boundaries

- Source rows, protected content, credentials, prompts, predictions, embeddings, and model artifacts stay outside aggregate reports and privacy-projected graphs.
- Raw clinical text, PDFs, images, waveforms, audio, and video are not accepted by the generic trainer.
- A project adapter may validate model-ready local data, but it cannot bypass approval, leakage controls, promotion, or sealed evaluation.
- The system does not claim clinical validity, regulatory compliance, deployment readiness, autonomous approval, or a global optimum.
- A successful engineering gate does not convert an unmet scientific objective into a positive result.

## Development

Use an external virtual environment and the canonical zero-retry test runner:

```bash
git clone https://github.com/zdqsgithub/alice-cli.git
cd alice-cli
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv ~/.alice/venvs/alice-dev --python 3.11
source ~/.alice/venvs/alice-dev/bin/activate
uv pip install -e ".[all,dev]"
scripts/run_alice_tests.sh --file-retries 0
```

Operational contracts and milestone-specific boundaries live under [`docs/alice`](docs/alice/).

## Contributing

For a managed contributor checkout:

```bash
curl -fsSL https://raw.githubusercontent.com/zdqsgithub/alice-cli/main/scripts/install.sh | bash
cd "${ALICE_HOME:-$HOME/.alice}/alice-cli"
uv pip install -e ".[all,dev]"
scripts/run_alice_tests.sh --file-retries 0
```

Run `alice update` to update that managed checkout. Issues and pull requests belong at [zdqsgithub/alice-cli](https://github.com/zdqsgithub/alice-cli).

## License

Alice CLI is available under the [MIT License](LICENSE).
