Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
A minimal, open-source coding agent for your Mac. Keep talking while it works on several tasks at once, with any model, including local ones.
Developer toolsPython · TypeScriptGitHub @stoyan-stoyanovOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Open-source desktop coding agent for macOS. Use any model: local with Ollama, your own API keys or a ChatGPT sign-in. Parallel chats, MCP connectors, skills, and computer use on a desktop of its own.
Loading the full README.
Read the full README ↗Wavefunction has one built-in coding agent. Each chat is a separate conversation with it, with its own model, folder and history, and chats run side by side. A project is a folder, usually a Git repository, and groups the chats that work in it.
Other agents take over your mouse, keyboard and screen to get things done. Wavefunction gets a desktop of its own, so you keep working while it clicks. Watch it, or take control at any time.
Computer use needs Docker Desktop and a model that can read images.
70+ ready-made connectors, plus any MCP server you add. Wavefunction follows your AGENTS.md and loads SKILL.md skills from the .agents/skills, .claude/skills and .opencode/skills folders in your projects and home folder, and from ~/.codex/skills, so it works with the setup you already use.
Settings › Analytics totals what every run used, from the numbers your providers report:
When only some runs reported a figure, it says how many ("Reported for 12 of 15 runs") instead of counting the rest as zero.
Use local models or require zero data retention. With Require zero data retention on in Settings → Models, OpenRouter and Vercel AI Gateway send chats only to providers that keep no prompts or responses. Other providers set it on your account with them.
~/Library/Application Support/app.harness.coding (the app's identifier from before it was named Wavefunction, kept so existing data stays where it is). Provider and connector keys are local files only your user account can read; they are not encrypted.Download the DMG from the latest release, open it and drag Wavefunction to Applications. It's signed and notarized by Apple, and it updates itself.
You need a Mac with Apple Silicon (macOS 11 or later). Setup walks you through connecting a provider, choosing models and creating your first project. Model usage is billed by your provider.
The app is a Tauri shell in Rust (src-tauri) around a React interface (frontend) and a Python agent engine (backend). The build freezes the engine with PyInstaller and bundles it, with its own Python, into the app.
You need macOS, Node.js 22+, uv (it installs Python 3.12), Rust and the Xcode Command Line Tools.
npm run setup # frontend packages and the Python environment, from their lockfiles
npm run desktop:build # the engine, then the app
open src-tauri/target/release/bundle/macos/Wavefunction.app
desktop:build also writes a ZIP and its checksum to dist/desktop. Its signature is ad hoc, so the app runs on the Mac that built it but warns elsewhere. For a signed, notarized DMG you can hand to others, use npm run release:local, which needs a Developer ID certificate and an App Store Connect API key (releasing).
While working on the interface, npm run dev:fixture runs it in your browser against a disposable synthetic workspace, with no account or model provider. npm run desktop:dev runs the app itself with the interface reloading as you edit. Before a pull request:
npm run check
Development and the architecture explain the rest.
Interested in contributing? We welcome new contributors. Start with CONTRIBUTING.md and the code of conduct, and report security issues privately as described in SECURITY.md.
MIT. Dependencies keep their own licenses; see THIRD_PARTY_NOTICES.md.