@agimon-ai/doompi-ui
Leader-key menus, themes, and TUI components for DoomPi and Pi extensions.
Package details
Install @agimon-ai/doompi-ui from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@agimon-ai/doompi-ui- Package
@agimon-ai/doompi-ui- Version
0.0.1-alpha.58- Published
- Sep 6, 2026
- Downloads
- 10.6K/mo · 1,713/wk
- Author
- agiflow-ai
- License
- MIT
- Types
- extension
- Size
- 877.3 KB
- Dependencies
- 7 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./dist/extensions/pi.mjs"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@agimon-ai/doompi-ui
DoomPi's shared terminal interface, Leader Space host, theme, overlays, and UI registries.
The DoomPi distribution loads this package as core. Extension authors can depend on its public contracts without adopting the full distribution.
Alpha: UI and contribution contracts may change between releases.
Requirements
- Node.js 22.19.0 or newer
- Pi 0.85.0
- Pi TUI 0.85.0
Install
To load the UI directly in Pi:
pi install npm:@agimon-ai/doompi-ui
DoomPi users should not add it to a layer; the distribution loads it before layer contributions.
Commands and keys
| Input | Behavior |
|---|---|
Ctrl+Space |
Opens Leader Space from anywhere in the editor |
SPC |
Opens Leader Space only when the current draft is empty; otherwise inserts a space |
/tools |
Opens the current tool and MCP inventory |
/config |
Opens settings contributed by active extensions |
The registry rejects or diagnoses conflicting Leader contributions instead of silently replacing an existing binding. Diagnostics are recorded through telemetry and shown as TUI warnings when a UI is attached.
Contribute to Leader Space
import { DOOM_UI_HUB_SERVICE, requireDoomUiHub } from '@agimon-ai/doompi-extension-contracts/ui-hub';
import type { Context } from '@deepseek-ai/cordis';
export function reviewPlugin(ctx: Context): void {
ctx.inject([DOOM_UI_HUB_SERVICE], (uiContext) => {
const contribution = requireDoomUiHub(uiContext).registerLeader({
source: '@example/review-extension',
bindings: [
{
id: 'review.open',
path: [{ key: 'r', label: 'review', detail: 'open review tools' }],
command: { name: 'review' },
},
],
});
return () => contribution.dispose();
});
}
Mount this plugin beneath the shared Doom Cordis host. Cordis retracts the registration when either the contributor or UI provider disappears, so reloads cannot retain stale bindings.
TUI and headless sessions
The editor, header, footer, overlays, Leader menu, and notifications require an interactive TUI. The underlying typed contribution registries can still be installed and queried in headless sessions, but UI-only commands have no panel to render. Provide a tool, RPC, or CLI route when a capability must also work headlessly.
Theme
The package publishes @agimon-ai/doompi-ui/themes/doom-pi-dark.json. DoomPi synchronizes that
resource and selects it by default. Set DOOMPI_THEME to select another available Pi theme for the
UI adapter.
Public API
Declared exports cover UI state, rendering, tool chrome, header/footer/editor components,
configuration and tools overlays, telemetry integration, and theme helpers. Contribution schemas
and the direct UI hub service live in extension contracts. Use these exports rather than importing
generated dist paths.
import { DOOM_UI_HUB_SERVICE } from '@agimon-ai/doompi-extension-contracts/ui-hub';
import { DEFAULT_THEME_NAME } from '@agimon-ai/doompi-ui/theme';
Development
pnpm build
pnpm typecheck
pnpm test
pnpm lint
Maintained by Agimon.
License
MIT