Local-first
Everything runs on 127.0.0.1. No accounts, no telemetry, no cloud sync,
no remote access. Your .env files stay in your tool folders.
Clone the repo and you’re off — the copy button is on the right.
git clone https://github.com/AlexKapadia/Pixie.gitThen follow Install & first run for uv sync and launching the dashboard.
Pixie is a single local web app that scans a tools/ folder, lists every tool
it finds in a sidebar, and renders a schema-driven UI for each one. Each tool
runs in its own isolated uv virtual environment as a subprocess that spins up
on click and shuts down when idle.
You don’t install tools through the UI. You add them in Claude Code with one of the shipped skills, and they appear in the sidebar after the validator confirms the contract is honoured.
Local-first
Everything runs on 127.0.0.1. No accounts, no telemetry, no cloud sync,
no remote access. Your .env files stay in your tool folders.
Schema-driven UI
A tool.json file declares inputs, outputs, layout, and secrets. Pixie
renders the form, the output panels, charts, maps, and tables from the
schema. No frontend code per tool.
Isolated venvs
Every tool gets its own .venv managed by uv.
Heavy dependencies (PyTorch, BERTopic, Whisper) never poison your base
Python.
Claude Code skills
Skills like add-tool-from-repo, add-tool-from-description,
debug-tool, and update-tool write the scaffolding for you and run the
validator end-to-end before claiming success.
Validator-first
Every tool passes 11 deterministic checks — folder structure, schema parsing, sample-input run, output conformance, clean shutdown — before appearing in the sidebar with a green dot.
Warm-keep
Recently-used tools stay warm for 5 minutes so the second click is instant. A global LRU cap keeps memory bounded.
Pixie doesn’t care where a tool comes from. The skills cover every common starting point:
Add a Pixie tool that converts currencies using the Frankfurter APIAdd a Pixie tool from https://github.com/some-org/cool-modelWrap my Excel model at ./quant/black_litterman.xlsx as a Pixie tool.Implement this paper as a Pixie tool: https://arxiv.org/abs/2310.06770Add a Pixie tool from this notebook: ./experiments/forecasting.ipynbWrap ffmpeg as a Pixie tool that re-encodes video.Convert ./apps/dashboard.py (Streamlit) into a Pixie tool.Add a Pixie tool from this OpenAPI spec: ./vendor/payments.yamlEach sentence triggers a focused skill (add-tool-from-description,
add-tool-from-repo, add-tool-from-excel-model, add-tool-from-paper,
add-tool-from-notebook, add-tool-from-cli-command,
convert-streamlit-app, convert-gradio-app, add-tool-from-openapi-spec)
that:
id and a human-readable name.tool.json with the right inputs and outputs (and, for the paper
path, reference fixtures from the paper’s own reported numbers).pyproject.toml and main.py (a FastAPI app honouring the
/schema + /healthz + /run contract).uv sync to build the .venv.uv run pixie validate <id> end-to-end, including spawning the tool
and POSTing sample input.overall: pass does it claim success.Refresh the dashboard and the tool appears in the sidebar with a green dot.
Full reference: Add tools.
| Inputs | Outputs |
|---|---|
| text, textarea, number, slider | text, markdown, number, boolean |
| select, multiselect, checkbox, toggle, radio | table, kv |
| date, time, datetime, date_range | charts (line, bar, scatter, area, pie, histogram, boxplot, heatmap, candlestick, radar, sankey, treemap, network) |
| file, image, audio | maps (points, heatmap, choropleth, polygons, route) |
| colour, json, code, markdown, tags | image, image_grid, image_compare |
| autocomplete, table | audio, video, latex, code, diff |
| map (point, bbox, polygon, multipoint) | tree, timeline, gantt, progress, log |
| hidden | stream_text, file |
Tools can mix any combination. The dashboard renders the right UI from the schema. See Input types and Output types for the full reference.
Pixie is not hosted, not a SaaS, not a marketplace, not a deployment platform. It does not authenticate users. It does not synchronise to the cloud. It is not a generic app platform — it is for small tools and models with simple input/output contracts.
Pixie does not ingest, install, or modify tools from inside its own UI.
Adding tools is done externally in Claude Code using the skills shipped in
this repo. From Pixie’s perspective, tools simply appear on disk in the
tools/ folder and it renders whatever is there.