Metadata-Version: 2.1
Name: nowrun
Version: 2.0.0
Summary: CLI to deploy and manage Android and HTML5 apps on nowrun.
Home-page: https://nowrun.io
Author: nowrun
Author-email: cloudmaster@now.gg
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# nowrun CLI

Deploy Android and HTML5 apps to a live URL - driven by your AI coding agent.

`nowrun` publishes Android and HTML5 apps to [nowrun](https://nowrun.io) and streams each at a
URL anyone can open in a browser, no install. You don't run deploy commands by hand: you set
the CLI up once, then tell your agent to ship. Android works with any engine that builds an APK
(native, Unity, Godot, Unreal); HTML5 games deploy as a zipped bundle.

## Quickstart

**1. Create your account.** Sign up and verify a payment card at [nowrun.io](https://nowrun.io)
(a $0 check, no charge on the free plan). This is the one step only a human can do.

**2. Connect the CLI (one time).** Requires Python 3.8+.

```
pip install nowrun
nowrun login          # opens the browser to sign in; also installs the AI skill + docs MCP
```

`nowrun login` authorizes this machine and teaches your agent how to use nowrun - no token to
copy or paste. (`nowrun update` refreshes it later; `nowrun logout` signs out.)

**3. Tell your agent.** Open your AI coding tool in your project and give it this prompt:

> Deploy my app to nowrun and give me the live public URL using the nowrun CLI. If you need the steps, read https://nowrun.io/docs/skill.md

Your agent creates (or reuses) the app, uploads the build, deploys it, and hands back the live
URL. That's the whole flow.

## What your agent runs for you

You normally never touch these - your agent does, guided by the skill `nowrun login` installed.
They're here for reference (and the occasional manual run):

| Command | Does |
|---------|------|
| `nowrun app categories` | the categories an app can have |
| `nowrun app create --title "My App" -p com.foo.bar --category Tools --description ... --pitch ... --intent ... --kind app --orientation portrait --icon icon.png` | create an app with its full listing - every field is required (or `--from-apk app.apk` to read the package and icon from the build; `--data app.json` to pass the fields as JSON) |
| `nowrun app update --pitch ... --icon icon.png` | change any of an app's metadata |
| `nowrun app list` / `nowrun app show` | list your apps / show one, with its visibility and readiness |
| `nowrun inspect app.apk` | read a build's package + version, no Android SDK needed |
| `nowrun validate` | check what's missing before deploying |
| `nowrun deploy -f app.apk` | deploy a build and get its live link (version read from the APK; `--wait` blocks until live) |
| `nowrun status -s <submission_id>` | poll until it's live |
| `nowrun help --json` | full command list + workflow (what the agent reads) |

`deploy` reads the build's package/version and **refuses to deploy a build whose package
doesn't match the app**, so you never publish to the wrong place. Add `--json` (in any
position) to any command for machine-readable output.

New apps are private; a nowrun admin decides which deployed apps are listed in ChatGPT.
You stay signed in: the CLI refreshes its session automatically (for 30 days after last use).

## nowrun admins

Accounts on nowrun's admin list choose a mode when they sign in (`nowrun login` asks, or pass
`--mode admin|personal`; required when there's no terminal to ask on). Switch any time with
`nowrun mode admin` / `nowrun mode personal`; `nowrun mode` and `nowrun whoami` show the
current one. Every command prints the active mode (`[ADMIN MODE] you@... - changes are
audited` or `[personal] you@...`), and `--json` output carries a top-level `"mode"`.

In admin mode the regular `app` / `build` / `deploy` / `status` commands act on
**nowrun-managed apps** (owned by no user, public once deployed), and the admin panel is
available:

| Command | Does |
|---------|------|
| `nowrun admin apps list [--q ... --owner-email ... --admin-managed/--user-owned --public/--private --status ... --readiness ... --all]` | search every app |
| `nowrun admin apps show <app_id>` | any app, with its owner |
| `nowrun admin apps set-public\|set-private\|disable\|enable\|unpublish <app_id>... [--reason ...] [--yes]` | change visibility / status (bulk) |
| `nowrun admin apps remove <app_id>... [--reason ...] [--yes]` | remove any apps: out of every list and the catalog, package freed, record kept |
| `nowrun admin apps delete <app_id>... [--reason ...] [--yes]` | permanently erase nowrun-managed apps and their builds (cannot be undone; use `remove` for a user's app) |
| `nowrun admin apps fetch-apk -a <app_id> --url <link> [--expected-package <pkg>] [--deploy]` | download an APK from a link into the deploy bucket and report what it is; `--deploy` then deploys it (unreviewed third-party build) |
| `nowrun admin users list\|show\|suspend\|reactivate ...` | manage accounts |
| `nowrun admin audit [--email ... --from YYYY-MM-DD --to ... --action ... --target ...]` | the audit log |

## Other AI tools

`nowrun login` (and `nowrun setup`) set up Claude by default. For another tool, run
`nowrun setup --target <tool>` - it installs whichever pieces that tool supports:

| Target | Skill file | MCP config |
|--------|-----------|------------|
| `claude` | `~/.claude/skills/nowrun/SKILL.md` | `~/.claude.json` |
| `codex` | `AGENTS.md` | `~/.codex/config.toml` |
| `copilot` | `.github/copilot-instructions.md` | - |
| `cursor` | - | `.cursor/mcp.json` |
| `vscode` | - | `.vscode/mcp.json` |

```
nowrun setup --target cursor
```

For anything else: `nowrun skill show` and `nowrun mcp show` print content you can paste.

## Links

- nowrun: https://nowrun.io
- Docs: https://nowrun.io/docs


