@pi-unipi/info-screen

Dashboard and module registry for Unipi — configurable info overlay with tabbed groups

Package details

extension

Install @pi-unipi/info-screen from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@pi-unipi/info-screen
Package
@pi-unipi/info-screen
Version
0.1.22
Published
May 1, 2026
Downloads
2,543/mo · 2,543/wk
Author
neuron-mr-white
License
MIT
Types
extension
Size
79 KB
Dependencies
1 dependency · 3 peers
Pi manifest JSON
{
  "extensions": [
    "index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@pi-unipi/info-screen

Dashboard overlay that shows what's running. Displays module status, registered tools, custom data groups, and load times in a tabbed interface.

Every Unipi module registers itself via MODULE_READY events. Info-screen picks these up and builds a live dashboard. Other packages add their own data groups — ralph shows active loops, memory shows counts, compactor shows token savings.

Commands

Command Description
/unipi:info Show info screen dashboard
/unipi:info-settings Configure info display (groups, stats, visibility)

Special Triggers

Info-screen listens for MODULE_READY events from @pi-unipi/core. When a module loads, info-screen adds it to the modules group automatically. No registration needed for basic module tracking.

Packages that want custom data groups use the registry API:

import { infoRegistry } from "@pi-unipi/info-screen";

infoRegistry.registerGroup({
  id: "my-module",
  name: "My Module",
  icon: "📦",
  priority: 60,
  config: {
    showByDefault: true,
    stats: [
      { id: "status", label: "Status", show: true },
      { id: "count", label: "Count", show: true },
    ],
  },
  dataProvider: async () => ({
    status: { value: "running" },
    count: { value: "42", detail: "items processed" },
  }),
});

The footer package reads info-screen data for its extension status segment.

Registry API

Method Description
registerGroup(group) Register an info group
unregisterGroup(id) Remove a group
getGroups() Get visible groups (sorted by priority)
getAllGroups() Get all groups (including hidden)
getGroupData(id) Get data for a group (cached)
updateGroupData(id, data) Manually update group data
getVisibleStats(id) Get enabled stats for a group
invalidateCache(id) Invalidate cached data

The registry is a singleton, also available globally via globalThis.__unipi_info_registry.

Load Tracking

import { startLoadTracking, recordLoadTime, finishLoadTracking, recordModuleStart } from "@pi-unipi/info-screen";

startLoadTracking();
recordModuleStart("@pi-unipi/memory");
// ... module loads ...
recordLoadTime("@pi-unipi/memory", "module", 150);
finishLoadTracking();

Configurables

Settings in pi settings.json:

{
  "unipi": {
    "infoScreen": {
      "showOnBoot": true,
      "bootTimeoutMs": 8000,
      "groups": {
        "modules": { "show": true },
        "ralph": { "show": true },
        "memory": { "show": false }
      },
      "groupOrder": ["modules", "ralph", "subagents"]
    }
  }
}
Setting Default What It Does
showOnBoot true Show dashboard when session starts
bootTimeoutMs 8000 How long to wait for modules before showing
groups.{id}.show true Toggle group visibility
groupOrder priority sort Custom group ordering

License

MIT