Metadata-Version: 2.4
Name: puras
Version: 0.5.0
Summary: Puras SDK + CLI — deploy and call long-running agentic skills on Puras.
Project-URL: Homepage, https://puras.co
Project-URL: Documentation, https://puras.co/docs
Author: Puras
Keywords: agents,ai,backend,cli,mcp,puras,sdk
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Description-Content-Type: text/markdown

# puras

The Python SDK + CLI for [Puras](https://puras.co) — deploy long-running,
multi-step agentic skills and call them from anywhere.

```bash
pip install puras        # or: uv tool install puras  /  uvx puras
```

You get two things in one package:

- **`import puras`** — the runtime SDK your deployed skills use (`media.run`,
  `secret`, `load_path`, `subagent.run`).
- **`puras`** — a CLI to scaffold, deploy, run, and tail skills from your
  terminal and CI.

## Quickstart

```bash
puras login                       # paste a workspace API key (created in the dashboard)
puras init --name "My Skillpack"  # creates the skillpack + writes puras.json
puras deploy                      # zips ./ and pushes an active deployment
puras run hello -i prompt="hi"    # submit a job and wait for the result
```

### Auth

- Interactive: `puras login` stores your key in `~/.puras/config.json`.
- CI: set `PURAS_API_KEY` (and optionally `PURAS_API_BASE`) in the environment —
  no `login` step, no browser.

```bash
PURAS_API_KEY=puras_live_… puras deploy --skillpack <id>
```

## Commands

| Command | What it does |
|---|---|
| `puras login` / `logout` / `whoami` | manage stored credentials |
| `puras init` | create a skillpack and write `puras.json` |
| `puras skillpacks` | list your skillpacks |
| `puras deploy [path]` | bundle a dir and push a deployment (`--no-activate`) |
| `puras deployments` | list deployments for the current skillpack |
| `puras activate <version\|id>` | make a deployment the active one |
| `puras run <skill> -i k=v` | submit a job and wait (`--async`, `--json`) |
| `puras logs <job_id>` | stream a job's events until it finishes |
| `puras secrets set/ls/rm` | manage skillpack secrets |
| `puras pull` | download the active bundle |

The skillpack is resolved from `--skillpack <id>`, else the nearest `puras.json`.
The CLI is a convenience over the public HTTP API (`POST /v1/jobs`,
`/v1/skillpacks/{id}/deployments`, …) — anything it does, you can do with curl
and a Bearer key.
