@renai-labs/cli
v0.2.9
Published
Ren CLI — agent-friendly client for the Ren API.
Maintainers
Readme
@renai-labs/cli
The Ren CLI is the client for configuring projects, skills, MCPs, pods, integrations, and durable work. Humans and CI can pair directly; inside a Ren sandbox, only the Ren meta agent receives authenticated CLI access.
Install
npm install -g @renai-labs/cliOr run without installing:
npx @renai-labs/cli whoamiOnce installed, ren upgrade pulls the latest published version (ren upgrade --check only reports). ren --version prints the installed version.
Quick start
# Interactive pairing (humans)
ren init
# Non-blocking pairing (automation / CI)
ren init --device-start --output json
ren init --device-poll --wait 25 --output json # poll until status: signed-in
# Confirm
ren whoamiMost commands accept --output json for machine-parseable output, and --profile <name> (or REN_PROFILE=<name>) to target a non-default profile.
Global flags
| Flag | Purpose |
| ----------------------------- | ----------------------------------------------------------------- |
| --output json | Machine-parseable JSON output. Use when piping or parsing. |
| --profile <name> | Target a profile other than default. Also REN_PROFILE=<name>. |
| --help | Full flag listing for any command. |
| REN_SBX_TOKEN+REN_USER_ID | Override the stored profile entirely (CI / sandbox runners). |
Authentication
| Command | Purpose |
| --------------------------------------- | --------------------------------------------------------------------------------------- |
| ren init (alias ren login) | Pair via browser device-code flow. Blocks until paired, for humans at a terminal. |
| ren init --device-start | Start pairing, print verification URL as JSON, exit immediately. Use for CI/automation. |
| ren init --device-poll [--wait <sec>] | Check a pending pairing. --wait polls briefly (keep it ≤ ~25s). |
| ren whoami / ren auth status | Active user, org, scopes. Exits non-zero if unpaired. |
| ren auth list / switch / logout | Manage stored profiles. |
| ren pats … | Personal access tokens: non-interactive auth for CI / servers. |
Workspace shape
Org
└── Pod ← compute and credential boundary
├── Project ← one scope/outcome, served by Ren
│ ├── instructions + default model
│ ├── skills + MCPs
│ └── stores + triggers + repositories
├── Vault ← scoped credentials
├── FileStore ← durable inputs and deliverables
└── MemoryStore ← relevant facts, decisions, history, preferencesPods
| Command | Purpose |
| -------------------------- | ---------------------------------------------------------------------------------------------------- |
| ren pods list | List pods visible to the active profile. The personal pod has isDefault: true + isPrivate: true. |
| ren pods create --name … | Create a pod (provisions a sandbox). |
| ren pods get <id> | Read a single pod. |
| ren pods members … | Add/remove pod members. |
| ren pods sandboxes … | Inspect the underlying sandbox runtime. |
| ren pods vaults add | Attach a vault to a pod (priority-ordered). |
Projects
| Command | Purpose |
| ------------------------------------------------- | --------------------------------------------------- |
| ren projects list --pod-id <podId> | List projects in a pod. |
| ren projects create --pod-id <podId> --name "…" | Create one project for a distinct scope or outcome. |
| ren projects get <id> | Read project configuration. |
| ren projects update <id> --instructions @file | Set stable instructions carried on every run. |
| ren projects skills add / remove / list | Manage project skills. |
| ren projects mcps add / remove / list | Manage project MCPs. |
| ren projects file-stores add / remove | Mount/unmount durable files. |
| ren projects memory-stores add / remove | Mount/unmount relevant project memory. |
Each project is served by Ren as its sole primary agent. Agent CRUD, project-agent attachment, and agent selection are intentionally absent from the CLI. The backend compatibility API and agent-bearing blueprints remain available to other clients. Legacy administration is available at https://useren.ai/app/library/agents/new.
Skills
| Command | Purpose |
| ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- |
| ren skills search --query "…" --sources user org registry | Find skills across scopes. |
| ren skills create <folder> --name "…" --description "…" | Upload a local skill folder (SKILL.md + optional scripts/, references/, templates/). |
| ren skills versions create <id> <folder> --version patch\|minor\|major | New skill version (full-replace upload). |
| ren skills get <id> | Read metadata + required credentials. |
| ren skills versions data <id> <version> --format presigned | Download the bundled files. |
| ren skills copy <id> | Fork a registry skill into your account. |
MCPs
| Command | Purpose |
| --------------------------------------------------------- | ---------------------------------------------------------- |
| ren mcps search --query "…" --sources user org registry | Find MCPs (Linear, Gmail, Calendar, Postgres, …). |
| ren mcps create --name "…" … | Register a custom MCP server. |
| ren mcps oauths … | Start / complete OAuth flows for MCPs that need user auth. |
| ren mcps get <id> | Read MCP metadata. |
Slack and GitHub are native Ren integrations, not MCPs, and have no CLI install command. Connect them from Settings → Integrations in the web app (org owner/admin).
Triggers & webhooks
| Command | Purpose |
| ------------------------------------------------------------------------ | -------------------------------------------------- |
| ren cron-triggers list <projectId> | List cron triggers. |
| ren cron-triggers create <projectId> --schedule "0 9 * * MON" … | Schedule Ren for the project on a cron. |
| ren cron-triggers update <projectId> <id> / archive <projectId> <id> | Edit / disable. |
| ren webhook-triggers … | URL-invoked triggers (CI hooks, app callbacks, …). |
Replays
| Command | Purpose |
| -------------------------------------------- | ----------------------------------------------- |
| ren replays share --session-id <sessionId> | Publish a chat session as a public replay link. |
| ren replays list / get <id> / archive | List / read / unpublish replays. |
Secrets & data plumbing
| Command | Purpose |
| --------------------- | -------------------------------------------------------------------- |
| ren credentials … | Add/rotate credentials referenced by skills (requiredCredentials). |
| ren vaults … | Vault CRUD (groups of credentials). |
| ren file-stores … | File-store CRUD. |
| ren memory-stores … | Memory-store CRUD. |
| ren models … | List available models; a project can set its default model. |
Issues
Bug reports and feature requests: https://github.com/renai-labs/cli/issues.
The CLI source lives in the Ren monorepo; this repository is the public face (README + issues only).
License
MIT. See LICENSE.
