### Install Dependencies and Start Development Server Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Installs project dependencies using npm and starts the development server for both Gateway and UI. ```bash npm install npm run dev ``` -------------------------------- ### Example Skill Recommendation Response Source: https://github.com/openbmb/pilotdeck/blob/main/skills/find-skills/SKILL.md Provides an example of how to present a found skill to the user, including its function, install count, source, installation command, and a link for more information. ```text I found a skill that might help! The "react-best-practices" skill provides React and Next.js performance optimization guidelines from Vercel Engineering. (185K installs) To install it: npx skills add vercel-labs/agent-skills@react-best-practices Learn more: https://skills.sh/vercel-labs/agent-skills/react-best-practices ``` -------------------------------- ### Quick Start: Install Dependencies and Run Demo Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/README.md Verify dependencies, automatically install missing ones, or run a demo to generate a sample PDF. ```bash bash scripts/make.sh check # verify deps bash scripts/make.sh fix # auto-install missing deps bash scripts/make.sh demo # → demo.pdf ``` -------------------------------- ### Install PilotDeck with One-line Installer Source: https://github.com/openbmb/pilotdeck/blob/main/README.md Recommended installation method for macOS and Linux. This command downloads and executes an installation script that sets up PilotDeck and its dependencies. ```bash curl -fsSL https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.sh | bash ``` -------------------------------- ### Start PilotDeck Server Source: https://github.com/openbmb/pilotdeck/blob/main/README.md Commands to start the PilotDeck server after installation or from source. The 'pilotdeck' command starts the server, and 'pilotdeck status' checks its runtime status. ```bash pilotdeck # starts the server at http://localhost:3001 pilotdeck status # check runtime status ``` -------------------------------- ### Install PilotDeck Dependencies from Source Source: https://github.com/openbmb/pilotdeck/blob/main/README.md Steps to install PilotDeck from source code. This includes cloning the repository and installing dependencies for the root and UI components. ```bash git clone https://github.com/OpenBMB/PilotDeck.git cd PilotDeck npm install # root deps (Gateway runtime) cd ui && npm install # UI deps cd .. ``` -------------------------------- ### Start PilotDeck with Docker Compose Source: https://github.com/openbmb/pilotdeck/blob/main/README.md Command to start PilotDeck using Docker Compose. This is a convenient option if Docker is installed on your system. ```bash docker compose up -d ``` -------------------------------- ### Install a Skill Source: https://github.com/openbmb/pilotdeck/blob/main/skills/find-skills/SKILL.md Use the 'add' command to install a skill from a specified owner and repository, optionally with a specific skill tag. The '-g' flag installs globally, and '-y' skips confirmation prompts. ```bash npx skills add -g -y ``` -------------------------------- ### Start Docker Compose Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Builds and starts PilotDeck services in detached mode using Docker Compose. ```bash docker compose up -d --build ``` -------------------------------- ### Domain Organization Example Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md Demonstrates how to organize skills that support multiple domains or frameworks by creating separate reference files for each. ```markdown cloud-deploy/ ├── SKILL.md (workflow + selection) └── references/ ├── aws.md ├── gcp.md └── azure.md ``` -------------------------------- ### Example Skill Search Queries Source: https://github.com/openbmb/pilotdeck/blob/main/skills/find-skills/SKILL.md Illustrates how to use the 'npx skills find' command with specific queries based on user requests. ```bash npx skills find react performance ``` ```bash npx skills find pr review ``` ```bash npx skills find changelog ``` -------------------------------- ### Start PilotDeck UI in Development or Production Source: https://github.com/openbmb/pilotdeck/blob/main/README.md Commands to start the PilotDeck UI. 'npm run dev' starts the UI in development mode with Hot Module Replacement (HMR), while 'npm run start' runs it in production mode. ```bash cd ui && npm run dev # dev mode (HMR), visit http://localhost:5173 # or cd ui && npm run start # production mode, visit http://localhost:3001 ``` -------------------------------- ### Node.js Dependencies Installation Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/README.md Commands to install Node.js and Playwright for rendering cover pages, including the Chromium browser. ```bash npm install -g playwright && npx playwright install chromium ``` -------------------------------- ### Check Vercel CLI Version Source: https://github.com/openbmb/pilotdeck/blob/main/skills/frontend-slides/SKILL.md Verify if the Vercel Command Line Interface is installed. If not, Node.js needs to be installed first. ```bash npx vercel --version ``` -------------------------------- ### Launch Evaluation Viewer Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md Launch the evaluation viewer to review skill outputs and benchmark data. This command starts the viewer and optionally includes previous workspace data for comparison. ```bash nohup python /eval-viewer/generate_review.py \ /iteration-N \ --skill-name "my-skill" \ --benchmark /iteration-N/benchmark.json \ > /dev/null 2>&1 & VIEWER_PID=$! ``` ```bash nohup python /eval-viewer/generate_review.py \ /iteration-N \ --skill-name "my-skill" \ --benchmark /iteration-N/benchmark.json \ --previous-workspace /iteration- \ > /dev/null 2>&1 & VIEWER_PID=$! ``` -------------------------------- ### Configure PilotDeck with Environment Variables Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Set model provider details directly in docker-compose.yml or an .env file for quick setup. ```env PILOTDECK_MODEL=openai/gpt-4.1 PILOTDECK_API_KEY=sk-your-api-key PILOTDECK_API_URL=https://api.openai.com/v1 ``` -------------------------------- ### Python Dependencies Installation Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/README.md Commands to install Python libraries required for PDF generation, specifically ReportLab for body pages and pypdf for merging. ```bash pip install reportlab pip install pypdf ``` -------------------------------- ### Commit Message Format Example Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md Provides an example of a standardized format for commit messages, useful for skills that involve code generation or modification. ```markdown ## Commit message format **Example 1:** Input: Added user authentication with JWT tokens Output: feat(auth): implement JWT-based authentication ``` -------------------------------- ### Adding a New Tool Configuration Source: https://github.com/openbmb/pilotdeck/blob/main/ui/src/components/chat/tools/README.md Example of how to add a new tool's configuration to `toolConfigs.ts`. This includes defining input types, labels, actions, and color schemes. ```typescript MyTool: { input: { type: 'one-line', // or 'collapsible' label: 'MyTool', getValue: (input) => input.some_field, action: 'open-file', colorScheme: { primary: 'text-purple-600 dark:text-purple-400', border: 'border-purple-400 dark:border-purple-500' } }, result: { hideOnSuccess: true // Only show errors } } ``` -------------------------------- ### Eval Metadata JSON Example Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md An example of the eval_metadata.json file used for each test case. It includes an ID, a descriptive name, the prompt, and an empty assertions list. ```json { "eval_id": 0, "eval_name": "descriptive-name-here", "prompt": "The user's task prompt", "assertions": [] } ``` -------------------------------- ### Install Playwright Chromium Source: https://github.com/openbmb/pilotdeck/blob/main/skills/frontend-slides/SKILL.md If Playwright installation fails, specifically if the Chromium browser does not download, run this command. This is often a solution for network or firewall issues. ```bash npx playwright install chromium ``` -------------------------------- ### Environment Dependency Management Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/SKILL.md Manage project dependencies using the `make.sh` script. Use `check` to verify, `fix` to install missing dependencies, and `demo` to build a sample PDF. ```bash bash scripts/make.sh check # verify all deps bash scripts/make.sh fix # auto-install missing deps bash scripts/make.sh demo # build a sample PDF ``` -------------------------------- ### Configure PilotDeck Model Provider Source: https://github.com/openbmb/pilotdeck/blob/main/README.md Example configuration for PilotDeck's model providers, specifying the schema version, agent model, and provider details like protocol, URL, and API key. ```yaml schemaVersion: 1 agent: model: deepseek/deepseek-v4-pro model: providers: deepseek: protocol: openai url: https://api.deepseek.com/v1 apiKey: sk-your-api-key ``` -------------------------------- ### Docker Compose YAML Configuration for Config Mount Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Example snippet showing how to uncomment the configuration file bind mount in docker-compose.yml. ```yaml volumes: - pilotdeck-home:/root/.pilotdeck - ${PILOTDECK_CONFIG:-${HOME}/.pilotdeck/pilotdeck.yaml}:/root/.pilotdeck/pilotdeck.yaml:ro ``` -------------------------------- ### Docker Compose YAML Configuration for Workspace Mount Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Example snippet showing how to uncomment the workspace bind mount in docker-compose.yml to allow agents access to host projects. ```yaml volumes: - pilotdeck-home:/root/.pilotdeck - ${PILOTDECK_WORKSPACE:-${PWD}}:/workspace ``` -------------------------------- ### Feedback JSON Structure Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md Example structure of the feedback.json file used for user reviews. It contains a list of reviews, each with run ID, feedback text, and timestamp. ```json { "reviews": [ {"run_id": "eval-0-with_skill", "feedback": "the chart is missing axis labels", "timestamp": "..."}, {"run_id": "eval-1-with_skill", "feedback": "", "timestamp": "..."}, {"run_id": "eval-2-with_skill", "feedback": "perfect, love this", "timestamp": "..." ], "status": "complete" } ``` -------------------------------- ### SQL Query for Ordinary User Chat Source: https://github.com/openbmb/pilotdeck/blob/main/docs/telemetry/receiver-contract.md Example SQL query to filter telemetry events for ordinary user chat sessions. This query targets specific values for module, ownerModule, and executionKind properties. ```sql properties.module = 'session' AND properties.ownerModule = 'session' AND properties.executionKind = 'user_session' ``` -------------------------------- ### Configure PilotDeck with YAML File Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Create a local pilotdeck.yaml file and configure Docker Compose to mount it for persistent settings. ```bash mkdir -p ~/.pilotdeck cat > ~/.pilotdeck/pilotdeck.yaml <<'YAML' schemaVersion: 1 agent: model: openai/gpt-4.1 model: providers: openai: protocol: openai url: https://api.openai.com/v1 apiKey: sk-your-api-key models: gpt-4.1: {} YAML ``` -------------------------------- ### Initialize Feedback Map and UI Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/eval-viewer/viewer.html JavaScript to initialize the feedback map, load existing feedback, and display the first review run. ```javascript // ---- Embedded data (injected by generate_review.py) ---- /* __EMBEDDED_DATA__ */ // ---- State ---- let feedbackMap = {}; // run_id -> feedback text let currentIndex = 0; let visitedRuns = new Set(); // ---- Init ---- async function init() { // Load saved feedback from server — but only if this isn't a fresh // iteration (indicated by previous_feedback being present). When // previous feedback exists, the feedback.json on disk is stale from // the prior iteration and should not pre-fill the textareas. const hasPrevious = Object.keys(EMBEDDED_DATA.previous_feedback || {}).length > 0 || Object.keys(EMBEDDED_DATA.previous_outputs || {}).length > 0; if (!hasPrevious) { try { const resp = await fetch("/api/feedback"); const data = await resp.json(); if (data.reviews) { for (const r of data.reviews) feedbackMap[r.run_id] = r.feedback; } } catch { /* first run, no feedback yet */ } } document.getElementById("skill-name").textContent = EMBEDDED_DATA.skill_name; showRun(0); // Wire up feedback auto-save const textarea = document.getElementById("feedback"); let saveTimeout = null; textarea.addEventListener("input", () => { clearTimeout(saveTimeout); document.getElementById("feedback-status").textContent = ""; saveTimeout = setTimeout(() => saveCurrentFeedback(), 800); }); } ``` -------------------------------- ### Deploy Presentation Script Source: https://github.com/openbmb/pilotdeck/blob/main/skills/frontend-slides/SKILL.md Execute the deployment script for a presentation. The script accepts either a folder containing an index.html file or a single HTML file. ```bash bash scripts/deploy.sh ``` -------------------------------- ### Chart JSON Schema Example Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/SKILL.md Example JSON structure for defining a bar chart. Includes chart type, labels, datasets, and an optional caption. ```json {"type":"chart","chart_type":"bar","labels":["Q1","Q2","Q3","Q4"], "datasets":[{"label":"Revenue","values":[120,145,132,178]}],"caption":"Q results"} ``` -------------------------------- ### Deploy Presentation Folder Source: https://github.com/openbmb/pilotdeck/blob/main/skills/frontend-slides/SKILL.md Deploy an entire folder containing the presentation and its assets. This method is more reliable for presentations with many assets. ```bash bash scripts/deploy.sh ./my-deck/ ``` -------------------------------- ### Project Architecture Overview Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/README.md Illustrates the main components and their interactions in the PDF generation process, from entry point to final output. ```text SKILL.md ← Claude entry point, routing only design/design.md ← Aesthetic system (read before any script) scripts/ make.sh ← Unified CLI: check / fix / run / demo palette.py ← content metadata → tokens.json cover.py ← tokens.json → cover.html render_cover.js ← cover.html → cover.pdf (Playwright) render_body.py ← tokens.json + content.json → body.pdf (ReportLab) merge.py ← cover.pdf + body.pdf → final.pdf + QA report ``` -------------------------------- ### Route A: Create PDF from Content Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/README.md Generate a new PDF document by providing metadata and content. Supports various document types and custom content structures. ```bash bash scripts/make.sh run \ --title "Q3 Strategy Review" \ --type "proposal" \ --author "Strategy Team" \ --date "October 2025" \ --content content.json \ --out report.pdf ``` -------------------------------- ### Check Vercel Login Status Source: https://github.com/openbmb/pilotdeck/blob/main/skills/frontend-slides/SKILL.md Confirm if the user is currently logged into their Vercel account. If not, guide them through the signup and login process. ```bash npx vercel whoami ``` -------------------------------- ### Build PilotDeck Docker Image Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Builds the Docker image for PilotDeck locally with the tag 'pilotdeck:latest'. ```bash docker build -t pilotdeck:latest . ``` -------------------------------- ### CollapsibleDisplay Component Usage Source: https://github.com/openbmb/pilotdeck/blob/main/ui/src/components/chat/tools/README.md Example of using the CollapsibleDisplay component for tools with expandable content. It wraps a CollapsibleSection and accepts children for content rendering. ```tsx ...} // Makes title a clickable link (for edit tools) showRawParameters={true} // Show raw JSON toggle rawContent='...' // Raw JSON string toolCategory="edit" // Drives border color > // Content as children ``` -------------------------------- ### Run PilotDeck with Config File Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Manually runs the PilotDeck Docker container, mounting a local YAML configuration file. ```bash docker run -d --name pilotdeck \ -p 3001:3001 \ -v pilotdeck-home:/root/.pilotdeck \ -v ~/.pilotdeck/pilotdeck.yaml:/root/.pilotdeck/pilotdeck.yaml:ro \ pilotdeck:latest ``` -------------------------------- ### OneLineDisplay Component Usage Source: https://github.com/openbmb/pilotdeck/blob/main/ui/src/components/chat/tools/README.md Example of how to use the OneLineDisplay component for compact tool rendering. It supports various actions and custom color schemes. ```tsx ...} // Click handler colorScheme={{ primary: 'text-...', border: 'border-...', icon: 'text-...' }} resultId="tool-result-x" // For jump-to-results anchor toolResult={...} // For conditional jump arrow toolId="x" // Tool use ID /> ``` -------------------------------- ### Run PilotDeck with Proxy Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Manually runs the PilotDeck Docker container with an HTTP/HTTPS proxy configured. ```bash docker run -d --name pilotdeck \ -p 3001:3001 \ -v pilotdeck-home:/root/.pilotdeck \ -e PILOTDECK_MODEL=openai/gpt-4.1 \ -e PILOTDECK_API_KEY=sk-your-api-key \ -e PILOTDECK_API_URL=https://api.openai.com/v1 \ -e PILOTDECK_PROXY=http://host.docker.internal:7890 \ pilotdeck:latest ``` -------------------------------- ### Python Image Cropping Function Source: https://github.com/openbmb/pilotdeck/blob/main/skills/frontend-slides/html-template.md A Python function using the Pillow library to perform a circular crop on an image, saving the result as a PNG. Requires `pip install Pillow`. ```python from PIL import Image, ImageDraw # Circular crop (for logos on modern/clean styles) def crop_circle(input_path, output_path): img = Image.open(input_path).convert('RGBA') w, h = img.size size = min(w, h) left, top = (w - size) // 2, (h - size) // 2 img = img.crop((left, top, left + size, top + size)) mask = Image.new('L', (size, size), 0) ImageDraw.Draw(mask).ellipse([0, 0, size, size], fill=255) img.putalpha(mask) img.save(output_path, 'PNG') ``` -------------------------------- ### Run Skills Migration Source: https://github.com/openbmb/pilotdeck/blob/main/skills/pilotdeck-skills-migration/SKILL.md Execute the skills migration script from the repository root. This command is used to initiate the process of migrating agent skills into PilotDeck. ```bash npm run skills:migrate ``` -------------------------------- ### Get Download URI Utility Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/eval-viewer/viewer.html Generates a data URI for a file, used for download links. Handles cases where data_uri is already present or needs to be generated from base64 data. ```javascript function getDownloadUri(file) { if (file.data_uri) return file.data_uri; if (file.data_b64) return "data:application/octet-stream;base64,"; } ``` -------------------------------- ### Generate a Proposal PDF Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/SKILL.md Use this command to generate a proposal PDF. Customize title, type, author, date, accent color, and content source. ```bash bash scripts/make.sh run \ --title "Q3 Strategy Review" --type proposal \ --author "Strategy Team" --date "October 2025" \ --accent "#2D5F8A" \ --content content.json --out report.pdf ``` -------------------------------- ### Analysis Results Schema Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/references/schemas.md This JSON structure provides a post-hoc analysis of skill execution, including a summary of the comparison, identified strengths and weaknesses of each output, and specific suggestions for improvement. Use this to diagnose issues and guide future development. ```json { "comparison_summary": { "winner": "A", "winner_skill": "path/to/winner/skill", "loser_skill": "path/to/loser/skill", "comparator_reasoning": "Brief summary of why comparator chose winner" }, "winner_strengths": [ "Clear step-by-step instructions for handling multi-page documents", "Included validation script that caught formatting errors" ], "loser_weaknesses": [ "Vague instruction 'process the document appropriately' led to inconsistent behavior", "No script for validation, agent had to improvise" ], "instruction_following": { "winner": { "score": 9, "issues": ["Minor: skipped optional logging step"] }, "loser": { "score": 6, "issues": [ "Did not use the skill's formatting template", "Invented own approach instead of following step 3" ] } }, "improvement_suggestions": [ { "priority": "high", "category": "instructions", "suggestion": "Replace 'process the document appropriately' with explicit steps", "expected_impact": "Would eliminate ambiguity that caused inconsistent behavior" } ], "transcript_insights": { "winner_execution_pattern": "Read skill -> Followed 5-step process -> Used validation script", "loser_execution_pattern": "Read skill -> Unclear on approach -> Tried 3 different methods" } } ``` -------------------------------- ### Run PilotDeck with Environment Variables Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Manually runs the PilotDeck Docker container using environment variables for configuration. ```bash docker run -d --name pilotdeck \ -p 3001:3001 \ -v pilotdeck-home:/root/.pilotdeck \ -e PILOTDECK_MODEL=openai/gpt-4.1 \ -e PILOTDECK_API_KEY=sk-your-api-key \ -e PILOTDECK_API_URL=https://api.openai.com/v1 \ pilotdeck:latest ``` -------------------------------- ### Execute Task for Skill Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md This configuration is used to execute a task with a specific skill. Ensure all paths and inputs are correctly specified. ```shell Execute this task: - Skill path: - Task: - Input files: - Save outputs to: /iteration-/eval-/with_skill/outputs/ - Outputs to save: ``` -------------------------------- ### Define Verifiable Goals for Multi-Step Tasks Source: https://github.com/openbmb/pilotdeck/blob/main/skills/karpathy-guidelines/SKILL.md When tackling multi-step tasks, outline a brief plan with clear verification steps for each stage. This ensures each part of the task is addressed and validated. ```markdown 1. [Step] → verify: [check] 2. [Step] → verify: [check] 3. [Step] → verify: [check] ``` -------------------------------- ### Render Benchmark Summary Table Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/eval-viewer/viewer.html Generates an HTML table to display benchmark summary statistics, including pass rates, time, and tokens, comparing two configurations. ```javascript let html = ""; // Header html += "

Benchmark Results

"; html += "

"; if (metadata.skill_name) html += "" + escapeHtml(metadata.skill_name) + " — "; if (metadata.timestamp) html += metadata.timestamp + " — "; if (metadata.evals_run) html += "Evals: " + metadata.evals_run.join(", ") + " — "; html += (metadata.runs_per_configuration || "?") + " runs per configuration"; html += "

"; // Summary table html += ''; // ... (rest of table generation code) ... html += "
"; ``` -------------------------------- ### Run Skill Optimization Loop Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md Execute the optimization loop using a Python script. This process splits the eval set, evaluates the current skill description, and iteratively improves it based on performance metrics. Use the model ID from your system prompt for accurate testing. ```bash python -m scripts.run_loop \ --eval-set \ --skill-path \ --model \ --max-iterations 5 \ --verbose ``` -------------------------------- ### Package Skill Script Source: https://github.com/openbmb/pilotdeck/blob/main/skills/skill-creator/SKILL.md Use this bash command to package a skill folder into a .skill file. Ensure you have Python and the necessary scripts available. ```bash python -m scripts.package_skill ``` -------------------------------- ### Migrate Multiple Selected Sources Source: https://github.com/openbmb/pilotdeck/blob/main/skills/pilotdeck-skills-migration/SKILL.md Migrate multiple selected skill sources simultaneously. This is useful for consolidating skills from different origins into PilotDeck. ```bash npm run skills:migrate -- --from cc,openclaw --execute npm run skills:migrate -- --from hermes --execute ``` -------------------------------- ### Route C: Reformat Existing Document to PDF Source: https://github.com/openbmb/pilotdeck/blob/main/skills/minimax-pdf/README.md Apply a new design and title to an existing document, supporting various input formats like Markdown, text, PDF, and JSON. ```bash bash scripts/make.sh reformat \ --input source.md \ --title "Annual Report" \ --type "report" \ --author "Research Team" \ --out output.pdf ``` -------------------------------- ### Run PilotDeck with Workspace Mount Source: https://github.com/openbmb/pilotdeck/blob/main/README_DOCKER.md Manually runs the PilotDeck Docker container with a host directory mounted as a workspace. ```bash docker run -d --name pilotdeck \ -p 3001:3001 \ -v pilotdeck-home:/root/.pilotdeck \ -v "$PWD":/workspace \ -e PILOTDECK_MODEL=openai/gpt-4.1 \ -e PILOTDECK_API_KEY=sk-your-api-key \ -e PILOTDECK_API_URL=https://api.openai.com/v1 \ pilotdeck:latest ```