Skip to content

Pixie

A local-first dashboard for your personal tools and models. Add tools by talking to Claude Code.

Get started in seconds

Clone the repo and you’re off — the copy button is on the right.

Clone Pixie
git clone https://github.com/AlexKapadia/Pixie.git

Then follow Install & first run for uv sync and launching the dashboard.

One dashboard. Every tool you’ve ever written.

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.

Add a tool from whatever you’ve got

Pixie doesn’t care where a tool comes from. The skills cover every common starting point:

From a plain-English description
Add a Pixie tool that converts currencies using the Frankfurter API
From an existing GitHub repo
Add a Pixie tool from https://github.com/some-org/cool-model
From an Excel .xlsx model (formulas and all)
Wrap my Excel model at ./quant/black_litterman.xlsx as a Pixie tool.
From an academic paper PDF or arXiv link
Implement this paper as a Pixie tool: https://arxiv.org/abs/2310.06770
From a Jupyter notebook
Add a Pixie tool from this notebook: ./experiments/forecasting.ipynb
From a CLI binary (ffmpeg, pandoc, yt-dlp, ...)
Wrap ffmpeg as a Pixie tool that re-encodes video.
From a Streamlit or Gradio app
Convert ./apps/dashboard.py (Streamlit) into a Pixie tool.
From an OpenAPI spec
Add a Pixie tool from this OpenAPI spec: ./vendor/payments.yaml

Each 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:

  1. Picks a kebab-case id and a human-readable name.
  2. Writes tool.json with the right inputs and outputs (and, for the paper path, reference fixtures from the paper’s own reported numbers).
  3. Writes pyproject.toml and main.py (a FastAPI app honouring the /schema + /healthz + /run contract).
  4. Runs uv sync to build the .venv.
  5. Runs uv run pixie validate <id> end-to-end, including spawning the tool and POSTing sample input.
  6. Surfaces the full report. Only if overall: pass does it claim success.

Refresh the dashboard and the tool appears in the sidebar with a green dot.

Full reference: Add tools.

What tools can do

InputsOutputs
text, textarea, number, slidertext, markdown, number, boolean
select, multiselect, checkbox, toggle, radiotable, kv
date, time, datetime, date_rangecharts (line, bar, scatter, area, pie, histogram, boxplot, heatmap, candlestick, radar, sankey, treemap, network)
file, image, audiomaps (points, heatmap, choropleth, polygons, route)
colour, json, code, markdown, tagsimage, image_grid, image_compare
autocomplete, tableaudio, video, latex, code, diff
map (point, bbox, polygon, multipoint)tree, timeline, gantt, progress, log
hiddenstream_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.

Pick your path

What Pixie is not

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.


MIT-licensed. Built with Python 3.12, FastAPI, htmx, Alpine.js, Tailwind, and a healthy dose of stubborn opinions about scope.