# uip coder

> Syntax for `uip coder`, an autonomous AI coding agent (Pi) that drives the UiPath CLI — a Preview-build-only command.

:::note
**Preview build only.** Unlike most Preview-labeled commands in this CLI (visible in `--help`, callable, just less stable), `uip coder` is registered *only* inside preview builds (`previewOnly(...)` in source) — it does not exist at all in a stable install. See [Versioning and stability](./versioning.md#per-command-stability) for the general Preview convention; this command is a stricter case, gated at build time rather than just labeled.
:::

`uip coder` runs **Pi**, an autonomous coding agent, wired to drive `uip` itself through a UiPath LLM Gateway provider extension. Every argument is forwarded verbatim to Pi's own CLI — there is no `uip`-specific option surface to document beyond the forwarding behavior below. The tool stays preview-gated while UiPath works out the tool-permission posture for an agent that executes tool calls without per-call approval in customer environments.

## Synopsis

```
uip coder [args...]
```

No arguments opens Pi's interactive TUI. All flags are Pi's own — run `uip coder --help` (rendered by Pi, not by `uip`) for the full surface. A few worth knowing from Pi's own package-management subcommand set, which must be the first token and bypasses agent-session setup entirely: `install`, `remove`/`uninstall`, `update`, `list`, `config`.

## How it works

- **Forwarding, not a native command.** `uip coder` has no options of its own — `allowUnknownOption`/`allowExcessArguments`/`helpOption(false)` are all set, and every argument is handed to Pi's `main()` entry point unmodified.
- **UiPath system-prompt injection.** Unless the first argument is one of Pi's package-management subcommands (`install`/`remove`/`uninstall`/`update`/`list`/`config`), the CLI prepends `--append-system-prompt <guide>` with a bundled guide on how to drive `uip` — so a prompt like `uip coder -p "deploy this process"` gets UiPath-specific context even though the command itself never parses `-p`.
- **UiPath as a model provider.** Pass `--provider uipath --model <id>` to route Pi's completions through the UiPath LLM Gateway instead of a directly-configured provider key.
- **Session continuity.** `--continue` resumes the previous session, matching Pi's own semantics.
- **Exit-code passthrough.** If Pi exits non-zero, `uip coder` surfaces it as a `Failure` with `Message: "The coding agent exited with code <N>."` and `Instructions` pointing at `uip coder --help` or `uip login` (in case the `uipath` provider is missing), then exits with that same code — the underlying detail is whatever Pi printed to its own output above the envelope, not something `uip` re-parses.

## Examples

```bash
# Interactive TUI
uip coder

# One-shot prompt
uip coder -p "explain what uip solution deploy upgrade does"

# Route through the UiPath LLM Gateway
uip coder --provider uipath --model anthropic.claude-sonnet-4-6 -p "list my orchestrator jobs"

# Resume the previous session
uip coder --continue
```

## Error behavior

Any non-zero exit from Pi is wrapped in a `Failure` envelope with the exit code preserved; if the `uipath` LLM provider isn't configured, run `uip login` first.

## See also

- [`uip llm-gateway`](./uip-llm-gateway.md) — the model discovery API Pi's `--provider uipath` routes through.
- [Versioning and stability](./versioning.md) — this CLI's Preview/GA/Deprecated convention.
- [Tools (plugins)](./concepts-tools.md)
- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
