Metadata-Version: 2.5
Name: edgelens-cli
Version: 0.2.1
Summary: Command-line interface for the EdgeLens Edge AI Device Farm.
Project-URL: Homepage, https://edgelens.ai
Project-URL: Repository, https://github.com/edgelens-ai/edgelens-sdk
Project-URL: Issues, https://github.com/edgelens-ai/edgelens-sdk/issues
Author-email: EdgeLens <support@edgelens.ai>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.9
Requires-Dist: click>=8.1
Requires-Dist: edgelens-sdk<0.3,>=0.2.1
Provides-Extra: dev
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.1; extra == 'dev'
Description-Content-Type: text/markdown

# edgelens-cli

Command-line interface for the EdgeLens Edge AI Device Farm. Drives the
same `EdgeLensClient` as the Python SDK; useful for ad-hoc sessions,
quick experiments, and shell scripts.

## Install

```sh
pip install edgelens-cli
# or
pipx install edgelens-cli
```

Adds an `edgelens` executable to your PATH.

## Quickstart

```sh
edgelens login            # prompts for the key; input is hidden
edgelens session create --device recamera-2002 --os stock-os --timeout 600
# session id is remembered as 'current' — follow-up commands target it
edgelens info
edgelens exec 'uname -a'
edgelens deploy ./face.cvimodel
edgelens inference run --duration 30
edgelens session release
```

In a script, pipe the key on stdin instead of passing it as an argument:

```sh
printf '%s\n' "$EDGELENS_API_KEY" | edgelens login
```

`--json` on the root command emits machine-readable JSON on every call,
useful for shell pipelines or CI:

```sh
edgelens --json session create --no-wait | jq -r .id
```

## Commands

```
edgelens login                            persist credentials (~/.edgelens/config.json)
edgelens logout                           forget credentials + current-session pointer
edgelens use <SESSION_ID>                 set current session for follow-up commands

edgelens session create [--device --os --timeout --wait/--no-wait]
edgelens session get [SESSION_ID]         defaults to current
edgelens session wait [SESSION_ID]        block until status=ready
edgelens session release [SESSION_ID]
edgelens session list                     recent sessions (from local state)

edgelens exec '<command>'                 run via SSH (proxied)
edgelens deploy <model_path> [--config --file ...]
edgelens info                             device info report
edgelens ssh                              print SSH connection details

edgelens display play <url> [--loop]
edgelens display show <url>
edgelens display stop
edgelens display status

edgelens inference start
edgelens inference stop
edgelens inference once
edgelens inference stats
edgelens inference run [--duration N --collect-frames]
```

## Configuration

| Source | Used for |
|---|---|
| `EDGELENS_API_KEY`, `EDGELENS_BASE_URL` env vars | Shell-session-scoped; the recommended way to pass a key in CI |
| `--base-url` flag | One-off override |
| `~/.edgelens/config.json` (chmod 0600) | Persistent default — set via `edgelens login` |

Current-session state lives at `~/.edgelens/state.json` (chmod 0600).
Session ids touched in the last ten commands are kept under `recent`
so `edgelens session list` shows what you were doing.

## Develop

```sh
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest
```

