Skip to content

Add Pi agent to CLI#76

Merged
nezhar merged 3 commits into
mainfrom
add-pi-agent
May 31, 2026
Merged

Add Pi agent to CLI#76
nezhar merged 3 commits into
mainfrom
add-pi-agent

Conversation

@nezhar
Copy link
Copy Markdown
Collaborator

@nezhar nezhar commented May 29, 2026

Adds support for the "pi" agent (Earendil) throughout the VibePod codebase, CLI, configuration, and documentation. The changes ensure "pi" is recognized as a first-class agent, can be run with vp pi, and is properly handled in agent management, skills mounting, image configuration, and tests. Notably, "pi" does not have a single-letter shortcut due to "p" being assigned to Copilot.

Agent support and configuration:

  • Added "pi" to the list of supported agents in src/vibepod/constants.py, with corresponding image environment variable support and default image logic. [1] [2] [3]
  • Implemented the "pi" agent specification in src/vibepod/core/agents.py, including its provider, image, command, config directory, and environment variables.
  • Updated default and user configuration examples to include "pi" in docs/configuration.md and src/vibepod/core/config.py. [1] [2] F3ce1579L91R103)

CLI and agent invocation:

  • Enabled running the "pi" agent via vp pi and clarified in documentation that "pi" does not have a single-letter shortcut. Added CLI tests to verify correct invocation and shortcut handling. [1] [2] [3]

Skills mounting and agent behavior:

  • Ensured "pi" uses the shared .agents/skills path for SKILL.md auto-discovery, both in agent logic and documentation. Added tests for correct skills mounting. [1] [2] [3] [4]

Documentation updates:

  • Updated all relevant documentation files to mention "pi" as a supported agent, including agent tables, image customization, and approval/permission support. [1] [2] [3] [4]

Testing and validation:

  • Added and updated tests to validate "pi" agent specification, image override, shortcut handling, and environment variable support. [1] [2] [3] [4] [5]

Summary by CodeRabbit

  • New Features

    • Added support for the Pi agent (Earendil provider). Invoke using vp pi shortcut.
    • Introduced VP_IMAGE_PI environment variable for custom Pi agent image overrides.
  • Documentation

    • Updated configuration reference, quickstart guide, and skills documentation to include Pi agent support and configuration details.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 29, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f2fd8759-02f5-452e-9ff4-800a52d3cfe8

📥 Commits

Reviewing files that changed from the base of the PR and between 9049afa and d975bf3.

📒 Files selected for processing (16)
  • docs/agents/index.md
  • docs/configuration.md
  • docs/index.md
  • docs/quickstart.md
  • docs/skills/index.md
  • src/vibepod/cli.py
  • src/vibepod/commands/run.py
  • src/vibepod/constants.py
  • src/vibepod/core/agents.py
  • src/vibepod/core/config.py
  • tests/test_agents.py
  • tests/test_cli.py
  • tests/test_config.py
  • tests/test_constants.py
  • tests/test_list.py
  • tests/test_run.py

📝 Walkthrough

Walkthrough

This PR adds comprehensive support for a new pi agent while refactoring CLI argument forwarding from Click to Typer. The pi agent is registered in core configuration and constants with its provider, image defaults, and environment variables. The CLI refactoring replaces Click context–based passthrough argument extraction with a Typer-compatible mechanism using a helper function. Documentation updates clarify agent shortcuts and configuration. Tests verify agent specifications, CLI behavior, and argument forwarding.

Changes

Pi Agent Integration and CLI Refactoring

Layer / File(s) Summary
Pi Agent Registration and Configuration
src/vibepod/constants.py, src/vibepod/core/agents.py, src/vibepod/core/config.py
pi agent is added to SUPPORTED_AGENTS, image override allowlist (VP_IMAGE_PI), and default image mapping. AGENT_SPECS defines pi's provider (earendil), command, config mount paths, and environment variables (HOME, PI_CODING_AGENT_DIR). Default configuration includes pi agent entry with enabled/image/env/volumes/init fields.
CLI Argument Forwarding Refactoring
src/vibepod/cli.py, src/vibepod/commands/run.py
vp run command refactored from direct run.run wiring to explicit run_command handler that captures passthrough arguments via new _context_args() helper. Run-alias handlers updated to accept Typer context and forward extra arguments. run.py removes Click import and gains passthrough_args parameter instead of deriving from Click context.
Pi Agent Skills Discovery Path
src/vibepod/commands/run.py
_agent_skill_paths function extended to recognize pi agent and return dedicated /config/.pi/agent/skills container discovery directory; inline documentation updated accordingly.
Documentation Updates
docs/agents/index.md, docs/configuration.md, docs/index.md, docs/quickstart.md, docs/skills/index.md
Pi agent added to supported-agent tables with provider and shortcut. Configuration reference documents agents.pi block structure and VP_IMAGE_PI override variable. Quickstart clarifies agent shortcut patterns using pi and copilot examples. Skills guide documents pi's skill mount target. IKWID compatibility table marks pi as unsupported.
Comprehensive Test Coverage
tests/test_agents.py, tests/test_cli.py, tests/test_config.py, tests/test_constants.py, tests/test_list.py, tests/test_run.py
Tests validate pi agent specification structure and environment variables, confirm pi lacks ikwid/shortcut support, verify CLI passthrough argument forwarding via Typer mechanism for pi and other agent aliases, test pi image override behavior, refactor config init tests to use tmp_path instead of isolated_filesystem, test pi-specific skills mounting, and confirm pi appears in list output with correct shortcut marker.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • VibePod/vibepod-cli#66: Refactors CLI argument forwarding in src/vibepod/cli.py and src/vibepod/commands/run.py using the same Typer passthrough mechanism introduced in this PR.
  • VibePod/vibepod-cli#73: Adds underlying per-agent skills mounting framework that the pi agent's /config/.pi/agent/skills path in this PR builds upon.
  • VibePod/vibepod-cli#21: Introduces the dynamic _register_run_alias mechanism in src/vibepod/cli.py that this PR further refines for Typer-based argument forwarding.

Poem

🐰 A new agent hops into the fold,
With pi's config and skills stories told.
Click gives way to Typer's flow—
Arguments pass through, onward they go! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 7.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change—adding the Pi agent to the CLI—matching the core objective of implementing first-class Pi agent support across the codebase.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-pi-agent

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 29, 2026

🤖 Augment PR Summary

Summary: This PR adds the pi (Earendil) agent as a first-class VibePod CLI agent.

Changes:

  • Registers pi as a supported agent and adds a default image + VP_IMAGE_PI override support.
  • Adds a pi AgentSpec (provider, image, command, config mount, env) and includes it in default config.
  • Enables running the agent via vp pi (no single-letter shortcut; p remains Copilot) and adds CLI tests.
  • Extends skills auto-discovery mounting so pi uses the shared /config/.agents/skills path, with coverage in tests.
  • Updates docs to include pi across agent listings, configuration examples, and image customization guidance.

Technical Notes: pi is treated similarly to agents that scan ~/.agents/skills, and supports image override via VP_IMAGE_PI / VP_IMAGE_NAMESPACE.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Comment thread docs/index.md
@nezhar nezhar merged commit 66b4997 into main May 31, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant