Skip to main content
PDD offers three ways to get started. Choose the one that matches how you work.

Web interface

Easiest. Launch a browser UI with one command.

Issue-driven CLI

Point PDD at a GitHub issue and let it implement automatically.

Hello example

Learn PDD fundamentals with a step-by-step walkthrough.
Complete installation before proceeding. Run pdd --version to confirm PDD is installed.

Option 1: Web interface

The web interface is the recommended way to start. It gives you a visual browser-based dashboard for running commands, browsing files, and accessing your session remotely via PDD Cloud.
1

Install PDD

curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install pdd-cli
2

Run setup

pdd setup
The wizard configures your API keys and shell completion. See post-install setup for details.
3

Launch the web interface

pdd connect
This opens a browser-based interface at localhost:9876 where you can:
  • Run commands visually (pdd change, pdd bug, pdd fix, pdd sync)
  • Browse and edit prompts, code, and tests in your project
  • Access your session from any browser via PDD Cloud (use --local-only to disable remote access)

Option 2: Issue-driven CLI

Use pdd change and pdd bug to implement GitHub issues directly from the command line. PDD runs a multi-step agentic workflow and opens a draft PR automatically.

Prerequisites

1

Install GitHub CLI

brew install gh && gh auth login
2

Install at least one agentic CLI

PDD orchestrates one of these tools to run its workflows:
npm install -g @anthropic-ai/claude-code
# Requires ANTHROPIC_API_KEY

Usage

# Implement a feature request (12-step workflow)
pdd change https://github.com/owner/repo/issues/123

# Create failing tests for a bug, then fix them
pdd bug https://github.com/owner/repo/issues/456
pdd fix https://github.com/owner/repo/issues/456
If PDD needs clarification, it posts questions as comments on the GitHub issue. Answer them there, then re-run the command to resume.

Option 3: Hello example

This walkthrough takes you through a manual prompt workflow from scratch. It’s the best way to understand how PDD turns a .prompt file into running code.

What you’ll build

A Python script generated entirely from a prompt file that prints hello to the terminal.

Steps

1

Install PDD

curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install pdd-cli
pdd --version
2

Clone the PDD repository

git clone https://github.com/promptdriven/pdd.git
cd pdd/examples/hello
3

Set an API key

PDD needs access to a language model. Export one of the following:
export GEMINI_API_KEY="your-gemini-key"
# OR
export OPENAI_API_KEY="your-openai-key"
Run pdd setup first to have the wizard detect and configure your keys automatically.
4

Generate code from the prompt

pdd --force generate hello_python.prompt
The --force flag skips interactive confirmation prompts, allowing overwrites without input. PDD reads hello_python.prompt and generates hello.py.
5

Run the generated code

python3 hello.py
Expected output:
hello

What just happened

PDD read the prompt file hello_python.prompt and used a language model to generate hello.py. The prompt file — not the generated code — is the source of truth. When requirements change, you update the prompt and regenerate. To run the full automated workflow (dependencies, generation, examples, tests, fixes) for any module, use pdd sync:
pdd --force sync hello_python

Global options

These flags work with any PDD command:
FlagDescription
--forceSkip all interactive prompts. Use in CI/CD or when you want unattended execution.
--strength FLOATSet model strength from 0.0 (cheapest) to 1.0 (highest ELO). Default is 0.5.
--localRun locally using your own API keys instead of PDD Cloud.
--verboseShow detailed output including token counts and context window usage for each LLM call.
--time FLOATScale reasoning token allocation for models that support it. Range 0.01.0, default 0.25.
--temperature FLOATSet model temperature. Default is 0.0 (deterministic).
Example — run with a more powerful model and verbose output:
pdd --force --strength 1.0 --verbose generate my_module_python.prompt

Next steps

Issue-driven development

Full tutorial on implementing GitHub issues with pdd change and pdd bug

Prompt workflow guide

Learn how to write prompt files and use pdd sync for the full development cycle

Core concepts

Understand how PDD treats prompts as the source of truth

Command reference

Every command, flag, and option documented

Build docs developers (and LLMs) love