<docs/screenshots/logo-mi.png width=120 align=left>
MiCoder is a free, independent, open-source AI coding workspace for macOS.
It combines an AI chat, project-scoped history, file tools, terminal access, Git workflows, provider configuration, skills, MCP servers, and local storage administration in one native SwiftUI application.
No Xiaomi affiliation: MiCoder is an independent community project. It is not made, sponsored, endorsed, licensed, or otherwise associated with Xiaomi Corporation or any Xiaomi subsidiary. "Xiaomi" is a trademark of its respective owner.
- Native macOS application built with SwiftUI and AppKit.
- AI chat with streaming responses, Markdown, tool calls, images, file attachments, and plan questions.
- Provider selection for local, custom, remote, OpenAI-compatible, ACP, and supported web transports.
- Project-scoped SQLite history at
<project>/.micoder/project.db. - Read-only/system-path fallback under
~/.micoder/projects/<stable-hash>/project.db. - WAL journaling, integrity checks, automatic backups, restore, per-project undo, and request history.
- Terminal panel with bounded command execution and AccessLevel approval gates.
- Git status, branches, commit, push, pull, publish, and review flows.
- Skills and MCP server catalog/install management.
- Slash commands, project file indexing, FTS5 message search, usage statistics, and localization support.
The full product capability set is described by activity in
TECHNICAL_SPECIFICATION.md. The canonical user-story/status
registry is docs/FEATURE_SPREADSHEET.csv; per-activity checks live in docs/activity-checklists/.
>2200@Testacross>350suites — all green.- Release build:
./build-app.shproducesMiCoder.app. - Live web-chat agent pipeline verified through the built-in API (port 8766): provider → embedded browser → real send → verified delivery → model response captured → persisted.
Incomplete behavior is intentionally marked PARTIAL/MISSING/FUTURE in the canonical
spreadsheet and is never presented as complete functionality. The macOS UI/WebKit target requires
macOS for the final runtime regression; a Linux-only sandbox cannot compile SwiftUI/AppKit/WebKit.
- macOS 13 or later.
- Swift 5.9 toolchain or later.
- A configured local/remote AI provider for chat generation.
- GitHub CLI (
gh) only for GitHub publish/PR workflows.
swift build
swift testBuild the application bundle with:
./build-app.shMiCoder/
Sources/
App/ Application state and macOS menu commands
Models/ Domain models and settings contracts
Services/ Providers, storage, Git, indexing, tools, and safety gates
Views/ SwiftUI screens and reusable components
Resources/ App resources and bundled catalogs
Tests/ Logic, storage, provider, safety, and integration tests
TECHNICAL_SPECIFICATION.md Canonical product specification by activity
docs/activity-checklists/ Manual code-based checklist for every activity
docs/FEATURE_SPREADSHEET.csv Canonical user-story/status registry
docs/FEATURE_TEST_REPORT.md Round-by-round verification and error report
docs/CONSOLIDATED_PROJECT_REPORT.md Current project-wide summary
docs/deprecated/ Historical/research/round docs (superseded)
MiCoder is designed around local project storage. Project history, indexes, settings, and resource registries are stored locally unless a configured provider or remote service is used. API keys use the macOS Keychain where available. Review provider terms and privacy policies before connecting third-party services.
Tool permissions are explicit. Read-only tools are separated from write and command execution;
run_command is gated by the selected AccessLevel and executed with bounded process behavior.
Still review commands and provider output before allowing changes to important files.
MiCoder is released under the MIT License. See LICENSE.
MiCoder is free and open source, but free distribution does not automatically eliminate trademark risk. The project does not claim any Xiaomi rights and must not use Xiaomi logos, wordmarks, or trade dress as branding. The name “MiCoder” and the visual identity should be reviewed and, if they could cause confusion with Xiaomi branding, replaced with an independent name and logo before public release. The disclaimer above is informational, not legal advice or a guarantee against a trademark complaint.
Contributions that add third-party logos, names, screenshots, or provider branding must include the relevant permission or attribution and must not imply endorsement.
- Create a focused change with a clear user story.
- Update the relevant activity checklist and
docs/FEATURE_SPREADSHEET.csv. - Add or update tests for behavior and error paths.
- Run
swift buildandswift test. - Keep incomplete work marked
PARTIAL,MISSING, orFUTUREuntil it is verified.
MiCoder is provided “as is”, without warranty. AI-generated code and commands can be incorrect, destructive, insecure, or incompatible with a project. Review generated output before applying it.