Metadata-Version: 2.4
Name: dooers-cli
Version: 0.9.0
Summary: Dooers CLI — push agents to Dooers, manage agent records, authenticate from the terminal
Project-URL: Repository, https://github.com/Dooers-ai/dooers-cli
Author-email: Dooers <dev@dooers.ai>
License-Expression: MIT
Keywords: agents,cli,deployment,docker,dooers,gcp
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: dooers-protocol>=0.8.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: pydantic>=2.13.2
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: tqdm>=4.66.4
Requires-Dist: typer>=0.12.3
Provides-Extra: dev
Requires-Dist: build>=1.4.3; extra == 'dev'
Requires-Dist: mypy>=1.20.1; extra == 'dev'
Requires-Dist: poethepoet>=0.44.0; extra == 'dev'
Requires-Dist: pytest-cov>=7.1.0; extra == 'dev'
Requires-Dist: pytest>=9.0.3; extra == 'dev'
Requires-Dist: respx>=0.21.1; extra == 'dev'
Requires-Dist: ruff>=0.15.11; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
Requires-Dist: types-tqdm>=4.66.0; extra == 'dev'
Description-Content-Type: text/markdown

# dooers (CLI)

The Dooers CLI. Installed by agent creators.

```bash
pip install dooers
```

## Commands

```bash
# auth (email prompts if omitted)
dooers login you@example.com
dooers whoami
dooers logout

# agents
dooers agents list
dooers agents create --name my-agent
dooers agents show ag_8h2k

# push (reads dooers.yaml in cwd unless agent_id given)
dooers validate
dooers push [<agent_id>] [--tag latest] [--env prod|stg|dev]

# logs (same agent resolution as push)
dooers logs [<agent_id>] [--since 15m] [--limit 100] [--json]
dooers logs --follow          # tail; Ctrl-C to stop
```

### `dooers logs`

Reads the deployment logs of an agent from `dooers-push`.

| Flag | Default | Meaning |
|---|---|---|
| `--since` | `15m` | How far back to start — a duration: `45s`, `15m`, `1h`, `2h30m`. |
| `--limit` | `100` | Max entries per request (the server caps at 1000). |
| `--follow`, `-f` | off | Poll every 2s and print new entries until interrupted. |
| `--json` | off | One compact JSON object per line (`timestamp`, `severity`, `message`) instead of formatted text. |

Default output is `HH:MM:SS  LEVEL  message`, with the level colourised
(ERROR/CRITICAL red, WARNING yellow, DEBUG/DEFAULT dim). Times are shown in the
timestamp's own zone (UTC, as emitted) — never converted to the local clock.

## Global config (precedence: flag > env > default)

| Setting | Flag | Env var | Default |
|---|---|---|---|
| Core API host | `--core-url` | `DOOERS_CORE_URL` | `https://api.dooers.ai` |
| dooers-push host | `--push-url` | `DOOERS_PUSH_URL` | `https://host.dooers.ai` |
| Target environment | `--env` | `DOOERS_ENV` | `prod` |

## Development

```bash
uv sync --extra dev
uv run poe dev
```
