Skip to content

App Platform CLI

The app-platform CLI is a command-line tool for the App Platform REST API, similar to gh for GitHub. It supports both interactive use and scripted automation via --json output.

Prerequisites

Installation

Poe Employee Note

The CLI requires access to the monorepo. Clone it and run the install script:

bash
# From the repo root
cd apps/app-platform-cli
bun run install-cli
How the install script works

This creates a symlink at ~/.local/bin/app-platform pointing to your local clone. It's idempotent — safe to run multiple times. If you have multiple clones, the last one to run install-cli wins.

Make sure ~/.local/bin is on your PATH:

bash
export PATH="$HOME/.local/bin:$PATH"

See the install script source for details.

Commands

auth — Authentication & Account Info

bash
app-platform auth login              # Verify API key, show user info
app-platform auth whoami             # Show current user
app-platform auth usage              # Show point balance
app-platform auth points-history     # Show usage history table
app-platform auth logout             # End session

apps — App Management

bash
app-platform apps list               # List all your apps
app-platform apps get <appHandleOrId>
app-platform apps publish --handle my-app --dir ./dist

chat — Interactive AI Chat

bash
app-platform chat                    # Start interactive chat (default: Claude-Opus-4.6)
app-platform chat --model GPT-4o    # Use a different model

models — Model Management

bash
app-platform models list             # List available LLM models

accounts — Connected Accounts

bash
app-platform accounts list           # List linked OAuth accounts
app-platform accounts unlink <providerId>

Global Options

bash
--json                           # Output as machine-readable JSON
--server <url>                   # Override the server URL (e.g. for local dev)
--version                        # Show version
--help                           # Show help

Environment Variables

  • POE_API_KEY (required) — Your Poe API key (get one here)
  • POE_SERVER_URL (optional) — Server URL override (same as --server flag)

JSON Output & Scripting

All commands support --json for machine-readable output, making it easy to pipe into tools like jq:

bash
# List app handles
app-platform apps list --json | jq '.[].handle'

# Sum point costs
app-platform auth points-history --json | jq '[.[] | .cost_points] | add'

# Get a specific app's bundle URL
app-platform apps get myuser/my-app --json | jq '.bundleUrl'

Local Development

Point the CLI at a local server:

bash
app-platform --server http://localhost:8787 apps list

Programmatic Usage

The CLI package also exports a SlopPoeClient for use in scripts and tools:

typescript
import { SlopPoeClient, assertSuccess } from "@ai-app/app-platform-cli";

const client = new SlopPoeClient({ apiKey: process.env["POE_API_KEY"]! });

const result = await client.listApps();
assertSuccess(result); // throws on failure
for (const app of result.apps) {
  console.log(`${app.handle} (${app.id})`);
}