Skip to content

Using NativePi

Packages and extensions

Packages remain Pi packages. NativePi manages their configured sources and displays both Pi-owned extension UI and optional NativePi graphical contributions.

Install and manage packages

Open Settings → Extensions to install, update, remove, or reload packages at user or project scope. NativePi calls Pi's package mechanisms and displays load errors rather than maintaining a separate package registry.

The equivalent Pi CLI sources include npm, Git, and local paths:

pi install npm:@scope/package
pi install git:github.com/owner/repository@v1
pi install /absolute/path/to/package
pi install -l ./relative/project-package

User-scoped package settings live in ~/.pi/agent/settings.json. Project-scoped settings live in .pi/settings.json and load only after the project is trusted.

Reload after running turns finish. NativePi does not restart Pi in the middle of a turn to apply a package change.

Ordinary Pi extensions

Commands, tools, event handlers, skills, prompt templates, and agent behavior are still implemented through Pi. NativePi offers extension commands, templates, and skills by name in the composer.

Pi's standard UI requests are also presented where possible: selects, confirmations, inputs, notifications, widgets, headers, footers, and custom terminal components. Raw terminal input and replacing Pi's input editor have no desktop equivalent.

Connect tools with MCP

Pi includes MCP support. Configure servers in ~/.pi/agent/mcp.jsonor a trusted project's .pi/mcp.json, then type /mcp in the composer to inspect their status. Pi owns the connections, tools, and sign-in flow, so the same setup works in its command line.

Prefer Pi's built-in support for new connections. If you use the optional @nativepi/mcp connection editor, disable Pi's built-in MCP extension with "extensions": ["-builtin:mcp"] in Pi settings to avoid connecting each server twice. Add that exclusion alongside existing entries. This package's graphical editor is under Settings → Extensions → MCP servers; it exposes tools but does not implement Pi's built-in OAuth, resources, prompts, or tool search. Remove the exclusion when returning to the built-in support.

See Pi's MCP guide for server configuration, tool exposure, and authentication.

Graphical extensions

A package can additionally declare a browser renderer through nativepi.renderer. That renderer adds React UI to controlled transcript, composer, conversation-view, context-pane, and settings slots. It does not replace Pi's extension entry or change what reaches the model.

Start with the extension API overview or follow the renderer quickstart.

Pi package documentation

Read Pi's own package documentation for package sources, filters, conventional directories, dependencies, and scope resolution.