CLI Command Reference

Complete reference for all Ploinky CLI commands. Commands are organized by category for easy navigation.

Note on command prefixes: The commands in this documentation are shown without the ploinky prefix, assuming they are run from within the project's interactive shell. For global usage from your system's terminal, prepend each command with ploinky (e.g., ploinky list agents).

Repository Management

add repo

Add a repository to your local environment.

add repo <name> [url]
Parameter Description
<name> Repository name (basic, cloud, vibe, security, extra, demo) or custom name
[url] Git URL for custom repositories (optional for predefined repos)
Predefined repositories:
  • basic - Essential tools and shell environments
  • cloud - AWS, Azure, GCP integrations
  • vibe - Social media and communication tools
  • security - Authentication and encryption utilities
  • extra - Additional utilities and helpers
  • demo - Example agents and tutorials
# Examples
add repo cloud                                    # Add predefined cloud repository
add repo myrepo https://github.com/user/repo.git  # Add custom repository

enable repo

Enable a repository for agent listings.

enable repo <name>
# Example
enable repo cloud

disable repo

Disable a repository from agent listings.

disable repo <name>

list repos

List all available repositories and their status.

list repos

update

Update Ploinky-managed repositories and project repositories. The all-repository form first pulls repositories under .ploinky/repos/, then recursively discovers git repositories from the provided folder path, pulls each one, refreshes Achilles default skills in each discovered project repository, and updates each project repository's managed .gitignore block.

update [folderPath]
update all [folderPath]
update repos [folderPath]
update repo <name>
# Examples
update                    # Search from the current working directory
update /work/projects     # Search from an explicit folder
update all /work/projects # Same as update with an explicit all keyword
update repo basic         # Update one .ploinky/repos entry

Agent Operations

enable agent

Register an agent in workspace registry for management. Supports run location modes and optional aliases for multiple instances.

enable agent <name|repo/name> [global|devel [repoName]] [as <alias>]
Mode Behavior
isolated (omitted) Agent runs inside a new subfolder named <agentName> in the current project directory.
global Agent runs in the current project directory.
devel <repoName> Agent runs inside .ploinky/repos/<repoName> (repo must exist).
# Examples
enable agent demo                    # isolated (creates ./demo)
enable agent demo global             # run in current directory
enable agent demo devel simulator    # run inside .ploinky/repos/simulator
enable agent demo as demo2           # second container with alias "demo2"

Authentication Options

enable agent <name> [mode] [--auth none|pwd|sso] [--user <name> --password <value>] [as <alias>]
FlagDescription
--auth noneNo authentication (default)
--auth pwdLocal password auth with HMAC-JWT sessions
--auth ssoOIDC via the configured SSO provider agent
--user / --passwordSet credentials for pwd mode
Note: Using enable agent is optional. You can enable repo then start <agent> directly; the agent will use the isolated mode and a subfolder <agentName> will be created. When supplying an alias, it becomes the container name for reinstall/disable/start operations and must be unique; reusing an alias returns alias already exists.

reinstall agent

Stops, removes, and re-creates the agent's container. This is a destructive operation that ensures the agent starts from a clean state. This command only has an effect if the agent's container is currently running.

reinstall <agentName>
# Example
reinstall demo  # stop, remove, and re-create the container for the 'demo' agent

list agents

List all available agents from enabled repositories.

list agents

disable agent

Remove an enabled agent from the workspace registry. The agent container must be destroyed first.

disable <agentName|repo/name>
# Examples
disable demo               # remove short-named agent (if unambiguous)
disable repoName/demo      # remove agent using repo-qualified name
Note: If the agent is configured as the static workspace agent (via start), disabling it also clears the static configuration once the agent entry is removed.

Workspace Commands

start

Start agents from .ploinky/agents.json and launch Router.

start [staticAgent] [port]
Parameter Description
[staticAgent] Primary agent to serve static files (required first time)
[port] Router port (default: 8080)
# First time setup
start demo 8080

# Subsequent starts (uses saved configuration)
start

shell

Open interactive shell session in agent container.

shell <agentName>
Attaches to a persistent container with full TTY support. Exit shell by typing "exit" to return to host.

cli

Run the agent's CLI command interactively. The manifest command is launched through the WebChat wrapper for a consistent chat-enabled TTY.

cli <agentName> [args...]
# Examples
cli MyAPI --help
cli PyBot --version

WebTTY Agent Shortcuts

Inside the Web Console/WebTTY, you can prefix a command with an agent name to run it inside that agent’s container via its CLI.

# In WebTTY shell
demo whoami     # opens 'cli demo', runs 'whoami', exits; shows only the command output
demo ls /       # same: runs 'ls /' inside the demo container and prints only its output

# Notes
- Output is trimmed to the subcommand’s result (not the intermediate 'cli demo'/'exit' steps).
- Requires the agent to define a cli command in its manifest; otherwise an error is shown.
- Works in WebTTY/WebConsole sessions that use bash (default). If bash is unavailable, the fallback shell may not support this shortcut.
- Equivalent to: open cli <agent>, run the subcommand, then exit.

status

Show workspace status including agents, router, and web services.

status

list routes

List configured routes from .ploinky/routing.json.

list routes
# Example output
Routing configuration (.ploinky/routing.json):
- Port: 8088
- Static: agent=demo root=/path/to/demo/agent
Configured routes:
- demo: hostPort=7001 container=ploinky_project_service_demo

restart

Restarts services. If an agent name is provided, it performs a non-destructive stop and start of that agent's container, preserving the container ID. This only affects running containers. If no agent name is provided, it restarts all agents and the router.

restart [agentName]
# Examples
restart          # Restart all agents and the router
restart MyAPI    # Stop and then start the existing container for MyAPI

Variables & Environment

var

Set a workspace variable (stored in .ploinky/.secrets).

var <VAR> <value>
Variable Description Default
WEBTTY_TOKEN WebConsole authentication token (randomly generated)
WEBCHAT_TOKEN WebChat authentication token (randomly generated)
WEBDASHBOARD_TOKEN Dashboard authentication token (randomly generated)
WEBMEET_TOKEN WebMeet authentication token (randomly generated)
# Examples
var API_KEY sk-123456789
var WEBTTY_TOKEN deadbeef
var WEBTTY_PORT 9000

vars

List all workspace variables.

vars

echo

Print the resolved value of a variable.

echo <VAR|$VAR>
# Examples
echo API_KEY      # Show raw value
echo $PROD_KEY    # Show resolved alias

/settings (alias: settings)

Interactively configure Achilles env flags used for LLM selection (works in both Ploinky CLI and Ploinky Shell).

/settings
settings
  • Arrows: navigate variables and options; Enter: edit/set; Esc/Backspace: exit.
  • Variables: ACHILLES_ENABLED_DEEP_MODELS, ACHILLES_ENABLED_FAST_MODELS, ACHILLES_DEFAULT_MODEL_TYPE, ACHILLES_DEBUG.
  • Model lists are filtered by available API keys and show provider names; values are applied to the current process env (not persisted to .env).

expose

Expose a workspace variable to an agent. If the value is omitted, the command defaults to using $<ENV_NAME>. When the agent argument is omitted, the static agent configured via start is used.

expose <ENV_NAME> [<$VAR|value>] [agent]
# Examples
expose DATABASE_URL $DB_URL myAgent
expose API_KEY $PROD_KEY            # Uses static agent
expose AUTO_SECRET demo             # Uses value from $AUTO_SECRET

default-skills

Copy every skill directory from a skills repository into .claude/skills/ and .agents/skills/. Re-running the command replaces existing copied skill folders so removed upstream files do not remain, and the command keeps a managed .gitignore block up to date.

default-skills <repoName> [--only agent[,agent...]] [--skip agent[,agent...]]
# Examples
default-skills AchillesCopilotBasicSkills
default-skills AchillesCopilotBasicSkills --only claude-code

Web Interfaces

webconsole / webtty

Prepare access for the Web Console (synonyms). Prints URL with token. Use --rotate to mint a new token.

webconsole [shell] [--rotate]
webtty [shell] [--rotate]
# Examples
webconsole
webconsole --rotate
webtty sh
webtty /bin/zsh
Access at: http://127.0.0.1:8080/webtty?token=<WEBTTY_TOKEN>
Shell options: sh, zsh, dash, ksh, csh, tcsh, fish, or absolute path. When a shell is provided, the router is restarted (if previously configured) so changes apply immediately; otherwise changes take effect on next start.

webchat

Prepare access for the WebChat interface. The command now only manages the access token and prints the router URL.

webchat [--rotate]
# Examples
webchat              # ensure token and show URL
webchat --rotate     # mint a new token
Access at: http://127.0.0.1:8080/webchat?token=<WEBCHAT_TOKEN>

dashboard

Prepare access for the Dashboard. Prints URL with token. Use --rotate to mint a new token.

dashboard [--rotate]
Access at: http://127.0.0.1:8080/dashboard?token=<WEBDASHBOARD_TOKEN>

webmeet

Prepare access for WebMeet and optionally set a moderator agent. Prints URL with token.

webmeet [moderatorAgent] [--rotate]
Parameter Description
[moderatorAgent] Agent to use as moderator
--rotate Generate a new token
Access at: http://localhost:8080/webmeet (proxied by the router)

Authentication

sso

Enable or disable an SSO provider agent for OIDC authentication.

sso [enable|disable|status]
# Examples
	sso enable    # Enable the SSO provider agent
	sso disable   # Disable SSO
	sso status    # Show current SSO provider
The SSO provider must be an installed agent with "ssoProvider": true in its manifest.

Client Operations

client tool

Invoke any MCP tool exposed by your agents. RouterServer aggregates every registered MCP endpoint and routes the call to the agent that implements the requested tool.

client tool <toolName> [--agent <agent>] [--parameters <params> | -p <params>] [-key value ...]

Arguments

Parameter Description
<toolName> Name of the MCP tool to execute. Must be unique across agents unless --agent is provided.
[--agent <agent>] Optional agent to target when multiple agents expose the same tool.
[--parameters <params> | -p <params>] Comma-separated list parsed into structured values (supports nested keys and arrays, e.g., user.name=Jane,hobbies[]=read,write).
[-key value ...] Additional flag-style parameters appended individually. Flags without a value become booleans.

Examples

# Simple text echo
client tool echo -text "hello from cli"

# Disambiguate when multiple agents share a tool name
client tool plan --agent demo -p steps[]=research,build,ship

# Mix comma parameters with flag-style overrides
client tool process -p "config.level=high,filters[]=active" --dry-run

client list tools

List every MCP tool exposed by the agents managed by the router. The output is formatted as a readable bullet list.

client list tools
Example output:
- [demo] echo - Echo back provided text
- [demo] list_things - List example items for a given category
- [simulator] echo - Echo back provided text

If one of the agents fails to respond, the command prints a Warnings section listing the affected agents.

client list resources

List every MCP resource (e.g., health://status) exposed by registered agents.

client list resources
Example output:
- [demo] health://status - Health probe result
- [simulator] health://status - Health probe result

client status

Ping a specific agent over MCP and report whether the session responds.

client status <agent>
Example output:
simulator: ok=true
MCP ping succeeded.

System Management

stop

Stop the router and all agent containers without removing them. Containers can be restarted later.

stop

shutdown

Stop the router and remove workspace containers listed in agents.json.

shutdown

destroy

Stop the router and remove ALL Ploinky containers in the workspace. clean is an alias for destroy.

destroy
clean

Logging & Monitoring

logs tail

Follow router logs in real-time.

logs tail [router]
# Examples
logs tail router    # Follow router logs

logs last

Show last N router log lines.

logs last <N>
# Examples
logs last 100           # Last 100 lines from router

Dependency Management

deps prepare

Build dependency caches for agents. Merges globalDeps/package.json with agent package.json and runs npm install in the container.

deps prepare [<repo>/<agent>]

deps status

Show cache validation state for all agents.

deps status

deps clean

Remove dependency caches.

deps clean <repo>/<agent>|--global|--all
Caches are stored under .ploinky/deps/ and bucketed by runtime key (container image + runtime family).

Profiles

Profiles control mount modes, environment variables, and lifecycle hooks per deployment stage.

profile show

Show the current active profile.

profile
profile show

profile <name>

Set the active workspace profile.

profile <dev|qa|prod>
Mount modes: dev profile mounts code and skills as read-write; qa and prod mount them as read-only.

profile list

List available profiles for an agent.

profile list [agentName]

profile validate

Validate profile configuration including required secrets.

profile validate <profileName> [agentName]

Help System

help

Show general help or detailed help for specific commands.

help [command]
# Examples
help           # General help
help add       # Help for add command
help cli       # Help for cli command

Configuration Files

Workspace Directory Structure

.ploinky/
β”œβ”€β”€ agents.json       # Enabled agents registry
β”œβ”€β”€ .secrets          # Environment variables
β”œβ”€β”€ profile           # Active profile name
β”œβ”€β”€ ploinky_history   # CLI command history
β”œβ”€β”€ repos/            # Cloned repositories
β”œβ”€β”€ agents/           # Per-agent work directories
β”œβ”€β”€ code/             # Symlinks to agent code
β”œβ”€β”€ skills/           # Symlinks to agent skills
β”œβ”€β”€ logs/             # Router and watchdog logs
β”œβ”€β”€ shared/           # Shared data
β”œβ”€β”€ running/          # PID files
β”œβ”€β”€ routing.json      # Router configuration
β”œβ”€β”€ servers.json      # Web surface tokens
β”œβ”€β”€ transcripts/      # Conversation transcripts
└── deps/             # Dependency caches
    β”œβ”€β”€ global/
    └── agents/

Agent Manifest (manifest.json)

{
  "container": "node:20-bullseye",
  "lite-sandbox": true,
  "runtime": { "resources": {} },
  "start": "/code/start_script.sh",
  "agent": "node server.js",
  "cli": "node repl.js",
  "readiness": { "protocol": "tcp" },
  "enable": ["other-agent global", "dep devel repoName"],
  "repos": { "repo1": "https://..." },
  "volumes": { "data": "/mnt/data" },
	  "ssoProvider": true,
  "profiles": {
    "default": {
      "env": { "NODE_ENV": "development" },
      "install": "npm install",
      "secrets": ["API_KEY"],
      "mounts": { "code": "rw" }
    }
  }
}