A local-first macOS app for private, inspectable AI coding workflows on your own machine.
Sumika helps you explore, change, and run local projects without handing your workspace to a cloud agent. You choose the context, review each action, and keep the conversation on your Mac.
- 🏠 Local by default: run LLMs through MLX and keep model execution, workspace context, and speech workflows on your Mac.
- 🧭 Explicit context: attach files, focus workspace context, and inspect what the model sees before the workflow grows opaque.
- 🛠 Agent with brakes: let Sumika read files, write code, run commands, and inspect diffs through typed tools with review states.
- ✅ Review before action: writes, edits, shell commands, and web access pass through approval instead of running as hidden automation.
- 🌐 Bring your own search: connect a self-hosted SearXNG instance or use the built-in DuckDuckGo search provider.
- 🧰 Terminal and browser built in: run approved workspace commands and inspect local previews without leaving the app.
- 🖥 Build and preview locally: create small apps, prototypes, and HTML experiments, then inspect them beside the chat.
- 🗣 Speak and dictate: listen to assistant responses with Apple system voices and dictate prompts with local English or multilingual speech models.
- 🧾 Inspectable transcript: keep prompts, assistant responses, tool calls, approvals, and command output visible in the chat.
Sumika can work in agent mode, write files through approval-aware tools, and keep the transcript inspectable while it works.
Build small local HTML, CSS, and JavaScript prototypes, then inspect them in the native preview pane.
Download, load, and inspect local models from the macOS app without turning the chat into a cloud workflow.
- Ask questions about a workspace and keep the model-facing context explicit.
- Build small apps, scripts, games, and UI prototypes in short, reviewable steps.
- Let the agent read, list, search, and summarize local workspace files.
- Review generated file writes, file edits, shell commands, and workspace diffs before they run.
- Search and fetch the public web through policy-gated tools, using either a self-hosted SearXNG instance or the built-in DuckDuckGo provider.
- Use the integrated terminal and browser preview while working through an agent task.
- Open local HTML previews and inspect browser state while iterating.
- Dictate prompts instead of typing them.
- Listen to assistant responses with installed Apple voices.
- Follow prompts, assistant responses, tool calls, approvals, and command output in one visible transcript.
Sumika keeps tool access explicit. The composer has a manual mode per chat session:
- Chat: normal conversation with public web tools only. No workspace tools, shell commands, local file access, or writes.
- Agent: coding workflow with workspace tools, write/edit tools, shell execution, browser preview tools, and approval flow.
Mode is product state, not prompt magic. Sumika does not infer local tool access from wording alone.
Sumika is built for local-first work, not a hosted assistant subscription.
- No subscription or hosted workspace account is required to use the app.
- No telemetry, prompts, transcripts, commands, or workspace contents are exported by the app.
- Model execution, chat history, speech output, and dictation stay on your Mac.
- Network access is explicit: web search and fetch tools only run when available in the selected mode and approved by policy.
- You can use the built-in DuckDuckGo search provider or point Sumika at your own SearXNG instance.
Sumika includes two local voice surfaces:
- Assistant speech adds play controls to completed text responses. It uses Apple system voices installed on the Mac, supports language and voice selection, and lets you tune speech rate.
- Composer dictation records prompts locally. The default model is a small, fast English model; a larger multilingual Parakeet model is available for German and other European languages.
Many agent products assume cloud models, opaque context selection, and broad implicit access to your data or tools. Sumika explores a different direction:
- Local-first model execution on macOS
- User-controlled workspace context
- Reviewable agent steps instead of hidden automation
- Approval-gated tool and shell execution
- Visible transcripts and tool states for review
- Native macOS workflows instead of a browser-first interface
sumika means "dwelling" or "place to live" in Japanese. sumika.chat is meant
as a local home for AI agents: close to your files, explicit about what context
they see, and reviewable before they act.
Sumika is an unreleased prototype. It is useful for experimentation and local coding workflows, but APIs, persisted data, and workflows are still changing.
The project is split into a headless SwiftPM core library and a macOS app
target. Reusable agent, runtime, persistence, and workflow logic lives in
SumikaCore; the app target owns SwiftUI/AppKit views, launch wiring, platform
services, and MLX-backed implementations.
- Tool Runtime: core flow for adding type-safe tools, permissions, registries, and model-facing tool calls.
- Chat Runtime: chat turn lifecycle, cancellation, transcript state, and model-context filtering.
Install the local task runner, linter, and formatter:
brew install just swiftlint swift-formatBuild the app locally:
just build
open "build/DerivedData/Build/Products/Debug/Sumika.app"Build an unsigned release app:
just release-unsigned
open "build/DerivedData/Build/Products/Release/Sumika.app"You can also build from Xcode by opening Sumika.xcodeproj and running the
Sumika scheme for macOS.
Common development tasks:
just test
just lint
just format
just final-checkjust build, just release-unsigned, and just test run the Sumika Xcode
scheme with a stable DerivedData path under build/DerivedData. just lint
runs SwiftLint using .swiftlint.yml. just format formats Swift sources with
swift-format. just final-check runs the broader local verification suite
before review.
Licensed under the Apache License 2.0.


