Documentation
Install NativePi, learn how its desktop workflows relate to Pi, or build a typed graphical extension. Start with the path that matches what you are doing.
Pi owns agent behavior, providers, tools, sessions, and ordinary extensions. Its documentation at pi.dev remains the authority for those capabilities. These pages cover the NativePi desktop surface and its graphical extension API.
Getting started
Using NativePi
NativePi and Pi
Understand which responsibilities belong to Pi and which belong to the desktop app.
Sessions and storage
See where conversations, credentials, settings, and NativePi preferences live.
Packages and extensions
Install Pi packages and understand how terminal and graphical extension UI coexist.
Git and worktrees
Review changes, stage hunks, commit, push, open pull requests, and add worktrees.
Browser access
Share the running workspace over your local network or a temporary public link.
Settings and customization
Choose an appearance, build color schemes, rebind shortcuts, and manage desktop and Pi settings.
Extension guides
Extension API overview
Learn how a Pi package can add controlled graphical surfaces to NativePi.
Build your first renderer
Create a complete counter extension with a typed host and a composer control.
Package structure
Separate the Pi entry, browser renderer, shared protocol, and runtime dependencies.
Typed protocols
Define methods and events that are inferred in TypeScript and validated at runtime.
Host channel
Implement renderer calls, emit events, and preserve behavior in Pi's terminal UI.
Renderer context
Read project, session, and agent state and invoke safe desktop actions.
Contribution slots
Choose the NativePi surface that matches the information or interaction you are adding.
Tools and entries
Render tool lifecycle states and custom session entries inside the transcript.
Composer contributions
Add compact controls or message-scoped state around the composer.
Panels and settings
Add consultative project UI and configuration backed by the Pi extension.
Shared UI
Use NativePi-styled controls, semantic CSS variables, dialogs, menus, and fields.
Examples and recipes
Copy focused patterns for live state, failures, tool lifecycle UI, settings, and desktop actions.