Skip to content

Slop-Poe CLI

The slop-poe CLI is a command-line tool for the Slop-Poe 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/slop-poe-cli
bun run install-cli
How the install script works

This creates a symlink at ~/.local/bin/slop-poe 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
slop-poe auth login              # Verify API key, show user info
slop-poe auth whoami             # Show current user
slop-poe auth usage              # Show point balance
slop-poe auth points-history     # Show usage history table
slop-poe auth logout             # End session

apps — App Management

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

chat — Interactive AI Chat

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

models — Model Management

bash
slop-poe models list             # List available LLM models

accounts — Connected Accounts

bash
slop-poe accounts list           # List linked OAuth accounts
slop-poe 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
slop-poe apps list --json | jq '.[].handle'

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

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

Local Development

Point the CLI at a local server:

bash
slop-poe --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/slop-poe-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})`);
}