Skip to content

PaddleBoard v0.3.0

Latest

Choose a tag to compare

@jasonsmithio jasonsmithio released this 24 Oct 01:32
· 1 commit to main since this release

PaddleBoard v0.3.0 — public beta

PaddleBoard is an open-source, local-first AI IDE built on
Zed. It keeps everything that makes Zed
good — the GPU-accelerated editor, LSP, the debugger, the terminal, the git
workflow — and adds the infrastructure a coding agent actually needs, running on
your machine instead of someone's cloud.

This is the first release meant for other people. Everything before it was built
in public but aimed at an audience of one.

The version number marks the beta, not a feature dump. Most of what's below
shipped gradually across 0.1.x and 0.2.x; this is the first time it's been
packaged, documented, and offered as something to actually install. Plus, we added a new
feature, Spotter!

What makes it different

Run the model on your own machine, with no API key. Managed Local Models
downloads a pinned llama.cpp and Gemma weights, supervises the server on an
ephemeral port, and registers it as a provider. Onboarding offers it as a
first-class path, so you can finish setup and talk to a working agent without
signing up for anything.

Bring your own keys for everything else. OpenAI, Anthropic, Google, Vertex
AI, Bedrock, and a dozen more — plus a ChatGPT Subscription provider that signs
in with OAuth if you'd rather use a Plus/Pro account than manage a key. Switch
providers from a dockable picker without opening settings.

Personas — tell the agent who to be. A PERSONA.md at your project root
describes who the agent should mimic, and every new thread adopts it: its voice,
its values, what it pushes back on. Keep a library and switch per thread, or just
ask mid-conversation ("be my QA tester") and the agent switches itself. Skills
define what an agent can do; a persona defines who it should be. Personas
ride the system prompt, so they work identically with every provider.

Spotter: free local model first, a stronger one only when the work
fails.
Name your models cheapest first, give the project a check command such as
cargo test, and Spotter runs it after every agent turn. A failure goes back to the same
model once; a second stops the run and offers the next tier, which continues in the same
thread with a summary of what failed. Nothing guesses how hard a task is: a failed check is
the only trigger. Escalating asks first by default, because it is the moment work moves
from free to paid. Off until you set "paddleboard_spotter"; see
docs.paddleboard.dev/spotter.

Code runs in a sandbox, not on your host. Tool calls that execute code run in
an ephemeral container — either a built-in libkrun microVM tier that needs
nothing installed, or Podman + gVisor (runsc) if you have them. Your project is
bind-mounted; the rest of your filesystem is not. MCP servers can run sandboxed
too, with the JSON-RPC framing proxied transparently.

Search your codebase semantically, locally. A built-in RAG index embeds your
project with EmbeddingGemma into a local SQLite store and exposes it to the agent
as a semantic_search tool. A pgvector backend is available if you'd rather
point at your own Postgres.

See where your tokens go. Per-provider, per-model token counts recorded to a
plain-JSON flatfile per day, readable in the AI Dock's Usage tab. The format is
text on purpose, so you can keep the directory in your own private git repo and
get clean diffs. Nothing is reported anywhere.

One-command serverless deploys. set sail: Deploy — or the ⛵ in the status
bar — ships the current project to Cloud Run, Lambda, Vercel, Azure Container
Apps, Cloudflare Workers, Netlify, or a target you describe yourself. Platform
knowledge lives in the open-source s8sskills catalog
rather than hardcoded in the editor, and interactive auth (gcloud auth login
and friends) is handed to you in the terminal — the agent never runs auth flows
itself.

The AI Dock. One modal for browsing and installing agents, skills, MCP
servers and personas, plus the usage view. The catalog is a file in the repo, so
additions are pull requests rather than fetches from a service.

Watch the agent work, or stop it mid-flight. Step-through mode pauses before
every tool call so you can step or skip each one. The orchestration panel shows
every live agent thread in the workspace as a tree, with subagents indented under
whatever spawned them.

Telemetry is hard-disabled. Not a setting you have to find — events are
dropped at the call site, and the onboarding toggles are gone. The trade is real
and deliberate: no usage data means feedback has to come from humans, which is
why the beta leans on GitHub Discussions.

There's more — a git Manifest panel, Git Login with GitHub/GitLab OAuth device
flow, multi-workspace, an embedded browser panel, forwarded ports, offline
spelling and grammar via Harper, tiered language support, and Placid mode for
when you just want to edit a YAML file without the docks. The
README covers each one.

Since v0.2.8

v0.2.8 shipped on 9 September. Most of what has landed since is inherited: about 356 commits
across five upstream Zed merges. That is the fork working as intended — upstream's editor
work arrives without PaddleBoard rebuilding any of it. Curated rather than enumerated,
following v0.2.8's precedent; the full list is in the changelog link below.

New in PaddleBoard

  • Spotter, described above: local model first, escalation on a failed
    project check. New in this release, off by default.
  • An unsigned Windows x86_64 preview build ships alongside macOS and Linux
    (see Installing).
  • The Agent Threads panel no longer needs the command palette to reach it: it has a
    keybinding and a View menu entry (cmd-k cmd-g on macOS, ctrl-k ctrl-g on Linux and
    Windows), and shows multi-agent sessions as a tree.
  • That tree now says what each thread is doing. Every row carries its agent's own icon
    and name; a thread waiting for your confirmation is flagged, and threads running tools
    are marked. Waiting-for-you outranks running, because it is the state that stalls
    everything beneath it.
  • The tree scrolls when it outgrows the panel, and a crash on Scion agent
    rows whose task summary has non-ASCII text is fixed.
  • Onboarding explains a key set from an environment variable (and how to
    reset it), and drops expand arrows from providers with nothing to configure.
  • Mentions of threads, rules, diagnostics, selections, pasted images, diffs
    and skills in agent messages work again: they had been showing as raw links, dropped when
    a message was edited, and unclickable in agent output (#324). And VS Code tasks and debug configs no longer show up twice
    beside a project's .paddleboard/ ones.

Editor and navigation

  • Soft wrap indentation is configurable, via the new soft_wrap_indent setting.
  • Fixes to multicursor indentation, breadcrumb highlighting outside excerpts, and the
    editor inheriting the whole-word setting from buffer search.
  • Two crashes worth naming by hand: a panic when showing pending input in a read-only
    buffer
    , and a panic hit-testing past a wrapped line's width. Vim mode also loses a
    paste crash with out-of-order marks.
  • The project panel no longer needs two Left presses to collapse an opened file's parent;
    the outline panel stops folding entries when you click them, and can show deleted files
    inside the file tree.
  • Markdown search highlights are no longer hidden by opaque theme colours, and a fenced
    block's language comes from the first word of its info string.
  • Completion detail text is muted, CodeLens text colour is customizable, and inlay hints
    that fall out of bounds are filtered rather than drawn.

Agents and models

  • ACP moves to 2.1, with context compaction and first-class tool-call names.
  • Terminal threads can be renamed from the Agent Panel, and agent terminal output no
    longer overflows its container. Idle thread retention is configurable.
  • Clearer provider failures: Google AI retries and reports better, Anthropic's
    exhausted-credit case is classified as payment required rather than something generic,
    and OpenCode fetches its model list dynamically.
  • Inline assistant fallback model selection is fixed.

Git, files and platform

  • Remote git operations no longer block commit views. Folders in the tree view get a
    context menu, the commit message editor gets a clipboard one, and historical file
    buffers get their language injections back.
  • File watching is markedly more responsive on slow or unresponsive filesystems, file scan
    exclusions inherit from project settings, and the open-file soft limit is raised at
    startup on Unix.
  • Tabular preview reads JSONL and NDJSON.
  • The browser panel's webview library moves from wry 0.40 to 0.57 (#268), with
    its stale dependency tree dropped.
  • Security: rustls is bumped to 0.23.45, the first version patched for
    GHSA-2mjx-qc3c-rqvc (#298).
  • Window controls stop shifting when the sidebar opens, centred layout works with a zoomed
    pane, menus can open on hover, tooltips answer a long press, and which_key gains a
    shortcut to show pending bindings.
  • On macOS, synthetic mouse drags no longer continue after the button is released. Python
    interpreter discovery no longer crashes on non-UTF-8 output.

Full changelog: v0.2.8...v0.3.0

Installing

macOS builds are code-signed with an Apple Developer ID and notarized, so they
open without a Gatekeeper warning. Apple Silicon only. Linux ships as an x86_64
tarball. Windows ships as an unsigned x86_64 preview zip: SmartScreen warns on first
run, no installer or in-app update, no managed Local Models — see
docs.paddleboard.dev/windows.

macOS and Linux builds update in place from here on.

What "beta" means

It means the feature set is the one we intend to have, and the bugs left are the
ones we haven't found yet. Read the beta promises
page for the stability bar, the known issues, and how to report things — and
please do report things. With telemetry off, the only signal is you telling us.

Credit

PaddleBoard is a fork of Zed, and the
overwhelming majority of this codebase is Zed's work — the editor, the rendering
pipeline, the language and debug infrastructure, years of craft. Upstream changes
are merged weekly. If you want a fast, beautiful editor without any of the above,
use Zed; it's excellent, and it's what made this possible.

GPL-3.0.