Metadata-Version: 2.4
Name: soothe-cli
Version: 0.5.25
Summary: Soothe CLI client - communicates with daemon via WebSocket
Project-URL: Homepage, https://github.com/mirasoth/soothe
Project-URL: Documentation, https://soothe.readthedocs.io
Project-URL: Repository, https://github.com/mirasoth/soothe
License: MIT
Keywords: cli,client,soothe,tui,websocket
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <3.15,>=3.11
Requires-Dist: pillow<12.0.0,>=10.0.0
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
Requires-Dist: pyyaml<7.0.0,>=6.0.0
Requires-Dist: rich<15.0.0,>=13.0.0
Requires-Dist: soothe-sdk<1.0.0,>=0.5.25
Requires-Dist: textual<10.0.0,>=8.0.0
Requires-Dist: typer<2.0.0,>=0.9.0
Requires-Dist: websockets<16.0,>=12.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.12.0; extra == 'dev'
Description-Content-Type: text/markdown

# Soothe CLI Client

WebSocket-based CLI client for Soothe daemon.

## Installation

```bash
pip install soothe-cli
```

## Usage

The `soothe` command provides both CLI and TUI interfaces:

```bash
# Interactive TUI mode
soothe

# Headless single-prompt mode
soothe -p "Research AI advances"

# Loop management
soothe loop list
soothe loop continue loop_abc123
```

## Architecture

This package is the **client** component that communicates with the Soothe daemon via WebSocket.

- **No direct dependencies on daemon runtime** - all communication through WebSocket
- **Lightweight dependencies** - only typer, textual, rich, and SDK
- **WebSocket-only transport** - bidirectional streaming protocol

## Dependencies

- `soothe-sdk>=0.5.10` - WebSocket client, protocol, types
- `typer>=0.9.0` - CLI framework
- `textual>=8.0.0` - TUI framework
- `rich>=13.0.0` - Console output

## Configuration

CLI client settings are passed as global flags on every `soothe` invocation:

```bash
# Connect to a daemon on a non-default host/port
soothe --daemon-host 127.0.0.1 --daemon-port 8765

# Enable debug logging for ~/.soothe/logs/cli.log
soothe --log-level DEBUG

# Disable Markdown rendering in the TUI
soothe --no-render-markdown
```

| Flag | Default | Description |
|------|---------|-------------|
| `--daemon-host` | `127.0.0.1` | Daemon WebSocket host |
| `--daemon-port` | `8765` | Daemon WebSocket port |
| `--log-level` | `INFO` | CLI log level (`SOOTHE_LOG_LEVEL` env overrides) |
| `--render-markdown` / `--no-render-markdown` | enabled | Markdown rendering in TUI |
| `--soothe-home` | `~/.soothe` | Soothe home directory |
| `--streaming` / `--no-streaming` | daemon default | Override output streaming |
| `--streaming-mode` | daemon default | `streaming` or `batch` |

Global flags apply to subcommands too, e.g. `soothe --daemon-port 9000 loop list`.

## Related Packages

- **soothed**: Server package (agent runtime)
- **soothe-sdk**: Shared SDK (WebSocket client, types)
