Pine 0.13.0 · Keyboard-first widgets

Give Pi
room to work.

Your conversation has company.
Live widgets, useful notes and agents of your own,
all beside Pi, inside herdr.

/pineOne command. A little more elbow room.

Pine 0.13.0 · Keyboard shortcuts

Run a widget
from the keyboard.

Keep your Pi conversation on the left and the widgets you’re working with on the right. Follow one shipment through two local examples inside Herdr.

01 / Dispatch a shipment

Send shipment 1042 from C-07

Lee is at a new dock. Keep Pi’s dispatch plan on the left while you change Dock, mark the shipment fragile and dispatch it in the upper-right widget. Build 208 stays open below.

Alt D DockAlt F FragileAlt Enter Dispatch

12 seconds · Keyboard input through Pine’s terminal client. The Mac widget shows ⌘ Enter for Dispatch.
02 / Review a build

Hold the build until the scan passes

Ask Pi to hold build 208. Watch the lower-right status change to “On hold.” When the seal scan passes, ask Pi to approve the build. The dispatched slip stays visible above.

In the review widget, press H to hold or A to approve.

15 seconds · Pi operates the native Release review widget from the conversation.
Try the dock slip in your own Pine session

Ask Pi, “Build a dock slip with Dock, Driver and Fragile fields. Give each a visible shortcut. Submit the current dock from the keyboard and show the result below the form.”

Pi can call pine_view with check-keyboard to catch missing or conflicting shortcuts before saving. The classic terminal displays Alt Enter for submit. The videos and example programs are public. Installing Pine requires access to its private GitHub repository.

A conversation. Then a workspace.

Watch your workspace
grow with you.

Five small moves. Real recordings. Scroll at your own pace.

Pine / Make roomRECORDED SESSION
The Delivery promise note beside the Pi conversation in a real Pine workspace.
STILL
01 / 05

A useful note beside your conversation.

Real Pine 0.6.1, Pi and herdr. Scripted model responses. Waits are shortened; every recording shows the whole frame.

Read the workflow ↗

Jump to a moment

01 Keep the useful bits beside you

A place for
the useful bits.

Keep the conversation in Pi. Give notes, tasks and live data a pane of their own.

A widget can show what your agent is working with, without burying the conversation.

/pine open notesMeet your widgets ↗
The Delivery promise note beside the Pi conversation.Read this workflow ↗

02 Give a recurring job a home

An agent of
your own.

Describe the job. Choose its access. Pine builds a saved agent you can run again.

Follow the work as it happens: saving files, checking startup, running a trial, then opening the agent in its own workspace.

/pine new agent

Your saved path. Your trial result.
Your next conversation, ready to go.

Make a custom agent ↗
Pine opens the saved release-reader agent, ready for a new request.Read this workflow ↗

03 Make a point, precisely

Big view.
Small handoff.

Open every widget in one browser dashboard. Pick a note, a task or a row, then send its exact reference back to Pi.

The reference lands in your draft. Add your question and send when you’re ready.

/pine dashboard

A click adds context.
You still send the message.

Explore the dashboard ↗
The real Pine dashboard confirms Pi accepted the selected reference.Read this workflow ↗

04 Keep what you learn

Tell it once.
Check it sticks.

Teach your agent a fact or a rule in its own conversation. Ask for a fix, then review the checks before the correction becomes part of the agent.

In this recording, the agent learns that the retry limit is three. Ask again and see the new answer.

/feedback fact: The retry limit is 3./fixHow feedback works ↗
The release-reader agent answers using its newly saved retry limit.Read this workflow ↗

05 Make a little more room

Start beside you.
Bring the team.

Export a saved agent as a pi-durable app, with team chat, a session inspector and routes for tools like GitHub and Slack.

Read what stays local. Run the generated checks. Then choose where to host it.

/pine durable your-agent

This recording runs the app locally.
Deploying is a separate step.

Take an agent online ↗
The exported app completes its real local smoke checks.Read this workflow ↗

From a fresh terminal

A small setup.
A bigger workspace.

Installation requires a GitHub account with access to the private Pine repository.

Node 22.19+ · Pi 1.4+
herdr 0.9.5 · Pine 0.13.0

Do the setup yourself

  1. Get Pi and herdr

    Use Node 22.19 or newer, then add Pi. Follow herdr’s platform instructions for the terminal workspace.

    npm install -g --ignore-scripts @earendil-works/pi-coding-agent@1.4.0
  2. Add Pine

    Run this in your shell. Already have Pi and herdr? Start here.

    pi install git:github.com/johnlindquist/pine@v0.13.0
  3. Open your workspace

    From your project, start herdr. In a shell pane inside herdr, start pi. Trust only a project you recognize. In an existing Pi session, run /reload.

  4. Check, then open a pane

    /pine doctor
    /pine open notes
    /pine open tasks --popout
    /pine doctor

    Type these Pi commands one at a time. Confirm both panes are visible and doctor passes. The first view downloads Pine’s verified renderer. For builders, choose your provider with /login and /model.

Full steps and troubleshooting

A few things to know

Before you open a pane.

What are Pi, herdr and Pine?

Pi is the coding agent you talk to in a terminal. herdr gives that terminal panes and workspaces. Pine is a Pi extension that puts useful views and custom agents in those panes, with browser views when you want more room.

Do I need a paid model?

Built-in notes, tasks and help need no model call. Conversations and builders use the provider you configure in Pi, such as an existing subscription, an API account or a compatible local model. Provider charges depend on that choice. Use /login and /model inside Pi.

Where does my data live?

Views live in ~/.pine/widgets/ or the project’s .pine/widgets/. Notes and tasks live under ~/.local/state/pine, or XDG_STATE_HOME/pine. Saved agents live in the project’s agents/ tree; their private conversations are in agents/lib/<name>/sessions/. Pine keeps project records separate; your configured model provider still receives the context sent to it.

Does sending a widget reference submit a message?

No. Send selection and Send state add a reference to Pi’s draft. Read it, add your question and send when you are ready. Pine does not submit the draft for you.

How do I remove Pine?

Close its panes with /pine close all. In your shell, use pi list to find the registered source, then pi remove with that same source. Reload or restart Pi. Saved records, views and agents remain for you to keep or remove deliberately. If you added the optional shell shortcut, remove only the shortcut marked as created by Pine. The agent guide gives the exact steps.

Built for the way you work

Your terminal.
Your tools. Your Pine.