Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

pmndrs/pine

AI Engineering

A terminal-based agent harness where agents subscribe to events, schedules, and MCP tools and react autonomously.

125
1
TypeScript
MIT
1 day old

What it is

Pine is a reactive agent harness: instead of only answering chat prompts, its agents subscribe to stimuli such as folders, commands, web addresses, webhooks, FTP endpoints, MQTT and Telegram, then wake up and act when something happens. It also covers ordinary chat, coding, tasks, scheduling, memory, MCP servers, skills, delegation and sub-agents. A main agent configures the rest through administrative tool calls rather than handing users config files to edit.

The interface is a terminal UI with tabs, panes for git diffs and tool output, inline images and video, and drag-and-drop. A built-in BM25 manual tool lets agents look up API details on demand, and computer use is provided on macOS.

Quick start

Prerequisites: Node.js, plus macOS or Linux (Windows is only a try-it path via Docker). Install globally, then set up the browser used by the web tools and the ~/.pine user folder:

npm install -g @pmndrs/pine
pine init
pine check
pine

pine init lists what it would install and asks once; on Linux it also prepares the agent sandbox. pine check validates configuration and prints security notes. Running pine opens the TUI and starts a daemon if none is running.

To keep agents reacting without a terminal open, run pine start as a service; pine then attaches to it. Connect a model with /model or a login command such as pine login opencode-go, pine login anthropic or pine login openai-codex; a local server (llama.cpp, vLLM, LM Studio) is added by address, e.g. pine model add studio http://127.0.0.1:8080. To work on a project, launch it in that folder with pine . and open the code pane with ▤ code or ctrl+g; /undo reverts the last message together with the files it changed operations guide coding guide.

Docker

For a container, pine needs extra capabilities so its sandbox can create namespaces and mount filesystems. The README gives a docker run invocation with SYS_ADMIN, NET_ADMIN, seccomp=unconfined, apparmor=unconfined and a named volume for /root/.pine; inside, installation and pine init are the same Docker notes.

Constraints

  • Runs on macOS and Linux; full Windows support is undetermined, with Docker as the suggested workaround.
  • Computer use is macOS-only.
  • The sandbox is a documented part of the design; the security reference should be read to know what is and isn't protected security reference.
  • Agent setup, event sources, MCP servers and routing are configured through the agent or pine.json/agent.json; the relevant reference pages are indexed from docs/SKILL.md.
  • Licensed MIT.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

You might also like

  1. Balanov/shimA tiny local-first harness for running terminal AI agents with any model, MCP servers, and Agent Skills.Go117