@bismawy/pi-arnative0.6.1
Refined aesthetics. Cohesive tools. Built for Pi. Warm themes, rounded tool boxes, tabbed header, compact footer and a /usage dashboard.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
Arnative
Refined aesthetics. Cohesive tools. Built for Pi.

Overview
pi-arnative replaces pi’s default terminal chrome with a unified, cohesive visual aesthetic.
- Warm Themes: Cohesive, contrast-checked OKLCH color palettes generated without drift.
- Tabbed Header: Compact box menu showing Directory, Model, Context, Skills, Extensions, and Shortcuts.
- Rounded Tool Boxes: Status, spinner, and duration for every tool call with expandable outputs.
- Enhanced Footer: 3-row status grid tracking branch, active duration (30s idle freeze), and token speed.
- Transcript Clock: Timestamps for conversation messages with clean bubble backgrounds.
- Usage Dashboard: Real-time token counts and cost tracking across all local sessions via
/usage.
Configuration & Presets
Working Spinner Presets
Configurable via /arnative → Animations (saved to arnative-config.json).
Features 18 presets with live animated preview in the picker (Arnative as default, Pi (system), and alphabetical variants). Press [g] in the picker to toggle Google brand gradient sweep on accent presets.
Footer Presets
Configurable via /arnative → Footers:
Arnative (Full)(default 3-row grid)Arnative (Minimal)(single collapsible head row; click orctrl+alt+mto toggle)Pi (system)(built-in footer)
Install
pi install npm:@bismawy/pi-arnative
Apply a theme via /settings → Theme → arnative (or variant). Requires a Nerd Font.
On a fresh install the arnative theme is applied automatically when pi has no theme of its
own; a theme you already chose is never overridden.
To test locally:
npm run dev
Shortcuts
| Key (Linux / Win) | Action |
|---|---|
ctrl+alt+t · alt+t |
Cycle header tabs |
ctrl+alt+r · alt+r |
Quick reload (/reload) |
ctrl+alt+n · alt+n |
New session (/new) |
ctrl+alt+m · alt+m |
Toggle Minimal footer |
/usage |
Token & cost dashboard (or /arnative → Usage) |
/arnative |
Settings menu (Themes, Headers, Footers, Animations, Usage) |
Click tool / ctrl+o |
Toggle tool output box |
← |
Back — step back from submenus/dashboard to menu |
Keybindings & Platform Notes
To bind app.session.new in ~/.pi/agent/keybindings.json:
{
"app.session.new": ["ctrl+alt+n", "alt+n"]
}
- Windows / WSL: Windows Terminal aliases
Ctrl+Altto AltGr; usealt+…(or disablealtGrAliasingin WT profile). - macOS: Uses
ctrl+option+…. - tmux / Herdr: If Esc has delay, set
PI_TUI_ESC_TIMEOUT=100in your environment. - Navigation:
←navigates back to parent menus;Esccancels or closes the active screen.
Architecture
Extensions & Components
| File | Role |
|---|---|
extensions/tools.ts |
Rounded tool boxes, spinners, and duration |
extensions/section-headers.ts |
Tabbed header and resource box (preset: /arnative headers) |
extensions/footer.ts |
3-row status grid footer and boxed editor (preset: /arnative footers) |
extensions/animations.ts |
Working spinner presets and /arnative → Animations picker |
lib/spinner.ts |
Spinner preset catalog: frames, cadence, and painters |
extensions/arnative.ts |
Settings menu with live preview and navigation |
extensions/timestamps.ts |
Message timestamps and bubble backgrounds |
extensions/ui-render-tweaks.ts |
Contrast tweaks, selection style, and UI polish |
extensions/usage.ts |
Token and cost dashboard (/usage) |
Theme Variants
Theme definitions are generated via themes/gen-themes.mjs using OKLCH color math (lib/color.ts).
Variants: sun · zinc · violet · emerald · matrix · cyberpunk · synthwave · gruvbox · nord · dracula
Development & Verification
npm test # Run unit tests and self-checks
npm run themes # Rebuild all theme variants
npm run preview # Live preview the working tree in your own Pi (stamps a pushable commit)
Pre-publish verification and tag validation are enforced via scripts/release-check.mjs.
Local-first push gate: the global pre-push hook rejects any branch push whose commit
carries no live-preview stamp, so a fix cannot reach GitHub unseen. npm run preview
launches Pi with this working tree and writes .git/arnative-preview for the exact commit
that was shown; editing extensions/, lib/, themes/, or package.json afterwards
invalidates it and the hook asks for a fresh preview. The preview must run on a clean tree
— commit or stash first.
License
Distributed under the MIT license.