Skip to content
 
 

Latest commit

 

History

399 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pi Wishcraft — operator cockpit for the Pi coding agent

Pi Wishcraft

Your operator cockpit for Pi.
A live powerline status bar, idea queue, skill search, sticky Bash, hooks, policy controls and session UX — one keypress away, without leaving the terminal.

npm version npm downloads Pi package MIT license

Wishcraft cockpit map showing Signal, Deck, idea capture, skills, managed shell and local guardrails around Pi
The shipped operator surfaces. Pi remains the agent runtime.

Start in 10 seconds

pi install npm:@groeponline/pi-wishcraft

Reload Pi, then press alt+p to open the Deck. First run? /wishcraft setup asks four questions — language, status preset, motion level, welcome overlay — reviews them, and writes one settings.json.

Two flows make Wishcraft click fastest:

# remember to benchmark the new provider path
/ideas

The # line is captured as an idea instead of being sent as a prompt — your active run keeps going. Then /skills opens the picker: search, inspect and insert a skill without leaving the session.

Upgrading? This project was published under the name @groeponline/pi-powerline-footer. That package name is deprecated on npm and no longer receives updates — install @groeponline/pi-wishcraft instead. Settings keys are unchanged, so an existing settings.json keeps working; drop the old entry from your Pi config when you switch.

Why Wishcraft

Pi stays the engine. Wishcraft adds the operator layer around it: live status, overlays, idea capture, skill search, sticky Bash, hooks, policy controls and session UX.

Kongming lanterns started as battlefield signals and later carried wishes. Wishcraft keeps both ideas in one place: telemetry while the work is moving, and thoughts you can park until you are ready for them.

Portfolio boundary: Wishcraft owns the operator cockpit and lightweight idea capture. Promote durable work to pi-missions, then use pi-agent-orchestrator when parallel or isolated execution adds value: idea -> mission -> orchestration run.

What you get

Surface What it does
Signal Motion-aware three-lane operator status: model/Git, live activity/tool state, and context/queue. Default placement is the editor top border; /signal placement below moves it.
alt+p Wishcraft Deck: session, Signal, skills, ideas, guardrails, shell, ports, usage, appearance, motion, shortcuts, diagnostics. g + jump key. /wishcraft settings is the flat list; /signal menu is Navigate / Configure / Status.
# <idea> File-backed inbox. Does not send the prompt. /ideas reviews status, tags, and skill insert. /ideas next feeds the oldest active idea into the session.
alt+s Stash the draft, ask something else, get it back when the run finishes.
/skills Overlay search on name, description, and path. Enter inserts. /skills doctor is the health table. /skills new writes a SKILL.md from a template.
!cmd / bash mode Managed shell with ghost suggestions from project history. No shell-native completion probes.
Hooks + repairs Command hooks on pi events. Custom-tool input repairs before execution. Kill-switch: wishcraft.hooksEnabled.
Read hints Appends a one-line continuation hint after a partial read, so the model knows the next offset. Opt-out: wishcraft.readHints: false.
Policy In-process deny/inject rules in global settings. No spawn. Kill-switch: wishcraft.policyEnabled.
Working indicator Four deterministic styles (dots, pulse, bar, ascii) with accessibility-aware static fallbacks.
Interface language English (default) or Dutch, switchable live via wishcraft.locale. English is compiled into every call site, so a missing translation falls back instead of blanking a surface.
Welcome art lantern, balloon, and normal opening artwork, each with a different silhouette and narrow-terminal fallback.

Pi owns the footer chrome, feed scrolling, and input. Wishcraft supplies widgets, overlays, and the bash/stash/editor integrations. The bar is not clickable; actions are commands and overlays.

Daily commands

Activates on load. /signal toggles it. /signal <preset> switches the information layout. /wishcraft opens the Deck. Tab completes presets, placement above|below|toggle, and every /wishcraft subcommand and setting path. /powerline remains a compatibility alias.

/signal doctor        settings, queue, git, bash, fonts
/signal export        current preset + layout as JSON
/tps                  live in/out overlay (same ring as the segment)
/usage                session / today / week token ledger
/repairs              tool-input repair counters
/skills               skill manager  ·  /skills doctor  ·  /skills new [name]
/ideas                idea review overlay (status, tags, skill insert)
/wishcraft            Deck overlay (operator surface)
/wishcraft get <key>  one setting: stored → source → effective
/wishcraft set <k> <v> validated write (Tab completes paths + values)
/wishcraft unset <k>  remove a stored value, back to default
/wishcraft settings   flat settings TUI  ·  setup  ·  doctor
/open-ports           listening sockets (filter, r refresh, enter copy)
/cd <path>            continue this conversation in another directory
/bash-mode            sticky shell  (also ctrl+shift+b)
/vibe star trek       themed working messages

Configuration never needs an editor: set validates against the same registry the settings TUI and wizard use, applies immediately, and writes to the file that already owns the key. Structured values (layout, custom segments, policy) stay in settings.json. See Configure from the prompt.

Keybinds (powerlineShortcuts, applied after /reload; null disables):

{
  "powerlineShortcuts": {
    "menu": "alt+p",
    "info": "alt+i"
  }
}

Minimal config

~/.pi/agent/settings.json (or PI_CODING_AGENT_DIR):

{
  "powerline": {
    "preset": "chef",
    "placement": "above",
    "welcome": true,
    "appearance": { "base": "lanternwake" }
  }
}

chef is muted colors, slash separators, live TPS in/out, and TCP port count. Built-in presets: default, minimal, compact, full, nerd, ascii, chef. For every setting at its default, see examples/settings.example.json.

Interface language (en | nl) applies immediately, no restart:

{ "wishcraft": { "locale": "nl" } }

Set PI_WISHCRAFT_LOCALE to pick a language before settings are read.

Daily token budget (never blocks a turn):

{ "wishcraft": { "tokenBudget": { "daily": 500000 } } }

At 80% the cost segment warns; at 100% it goes red and welcome notifies. /usage shows the ledger.

Hooks, policy, and guardrails

Hooks are commands that read JSON on stdin; policy is in-process regex evaluated before them. Definitions live in the global settings file only, and wishcraft.hooksEnabled: false / wishcraft.policyEnabled: false are the kill-switches. Full copy-paste examples — a destructive-rm deny hook, an append-only audit hook, a SessionStart git-status hook, and two policy rules — are in docs/configuration.md.

Privacy/network boundary: ideas, settings, usage ledgers, and normal cockpit state stay local; there is no package-owned telemetry backend. Optional exchange-rate/DeepWiki features and operator-defined hooks cross the network/process boundary only when used.

Limits

  • No mouse on the live footer. Pi core owns that surface.
  • No second alt+i product. Ports stay on alt+i; other detail is → in the navigator.
  • Compatibility status keys (powerline.preset, powerline.tps, powerline.ports) are available to peer extensions; normal Wishcraft use does not require them.

vNext direction

Wishcraft is Pi's animated operator layer. See the release plan and design corpus.

Docs

Guides live in docs/.

MIT. Issues: GroepOnline/pi-wishcraft.

About

Operator cockpit for Pi: status bar, idea inbox, skills, bash mode, hooks and policy.

Topics

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages