Skip to main content

Penguin CLI – Current Command Reference (v0.1.x)

NOTE
Penguin is under active development. The command-line interface already offers a solid core, but many advanced features shown in earlier drafts of the docs have not been implemented yet. This page only documents functionality that is actually available today. Anything else should be considered experimental and subject to change.


Getting help

# Global help
penguin --help

# Help for a specific sub-command
penguin project --help
penguin project task --help
penguin config --help

Quick start

1. Interactive chat (default)

# Start an interactive chat session
penguin

2. One-off prompts (non-interactive)

# Ask a single question (prints assistant reply and exits)
penguin -p "Explain async/await in Python"

# Read the prompt from stdin (use "-" as the placeholder)
echo "Give me a limerick about penguins" | penguin -p -

The following global flags can be combined with either interactive or non-interactive mode:

FlagDescription
--model/-m <MODEL_ID>Override the model configured in penguin.yml
--workspace/-w <PATH>Use a different workspace directory
--no-streamingDisable token-by-token streaming output
--fast-startupSkip memory indexing for faster launch
--continue/-cContinue the most recent conversation in interactive mode
--resume <SESSION_ID>Resume a specific saved conversation
--run <TASK_NAME>Execute a stored task in autonomous run-mode
--247 / --continuousKeep run-mode running continuously until interrupted
--time-limit <MIN>Set a time limit for run-mode
--version/-vPrint Penguin version and exit

Sub-commands

project

Project management helpers (backed by ProjectManager).

CommandSummary
penguin project create <NAME> [--description/-d TEXT]Create a new project
penguin project listList existing projects
penguin project delete <PROJECT_ID> [--force/-f]Delete a project

Tasks are namespaced under a project:

CommandSummary
penguin project task create <PROJECT_ID> <TITLE>Create a task
penguin project task list [<PROJECT_ID>] [--status/-s STATUS]List tasks (optionally filtered)
penguin project task start <TASK_ID>Mark task running
penguin project task complete <TASK_ID>Mark task completed
penguin project task delete <TASK_ID> [--force/-f]Delete task

Status values can be pending, active, completed, or failed.

config

Manage the Penguin configuration file and first-run setup wizard.

CommandWhat it does
penguin config setupRun (or re-run) the interactive setup wizard
penguin config editOpen the config file in your default editor
penguin config checkValidate that required keys are present
penguin config test-routingDebug provider/model routing logic
penguin config debugPrint an extended diagnostic report

Developer utilities

CommandPurpose
penguin perf-test [-i N]Benchmark startup time with and without fast-startup
penguin profile [-o FILE] [--view]Launch Penguin under cProfile and save results
penguin chatExplicit synonym for starting interactive chat (identical to running penguin with no arguments)

Examples

# Create a project and a task, then start the task interactively
penguin project create "Demo" -d "Playground project"
PROJECT_ID=$(penguin project list --json | jq -r '.[0].ID')

penguin project task create "$PROJECT_ID" "Research llama-models"
TASK_ID=$(penguin project task list $PROJECT_ID --json | jq -r '.[0].ID')

penguin project task start $TASK_ID

Missing features

Earlier versions of the docs referenced commands such as penguin memory, penguin db, advanced task dependency graphs, and full web-server management. These features are work-in-progress and are not available in the current release. Attempting to run them will result in a "No such command" error.


Last updated: June 13th 2025
Please open an issue on GitHub if you find any inaccuracies.