The ultimate UX for agentic coding. A native macOS IDE that feels like a TUI but has the power of a GUI.
Requires Zig.
zig build # Build everything
zig build run # Build + run CLI
zig build test # Run tests
zig build all # Build + tests + fmt/lint checks
zig build xcframework # Build dist/SmithersKit.xcframework (arm64+x86_64)- Zig (0.15+)
- prettier —
npm install -g prettier - typos —
brew install typos-cli - shellcheck —
brew install shellcheck - Xcode (for macOS build and
xcodebuild test) - Node.js + pnpm (
npm install -g pnpm) forweb/playwrightgates - Rust toolchain (
cargoviarustup) forzig build codex/zig build jj submodules/codexandsubmodules/jjpresent and buildable (required forzig build codex/zig build jj, and forzig build dev)
Notes:
zig build alluses a single xcframework writer path.xcode-buildconsumes the already-builtdist/SmithersKit.xcframeworkvia build-step ordering.zig build allhard-fails whenprettier,typos, orshellcheckare missing.zig build allhard-fails whenpnpmorweb/are missing.zig build codexandzig build jjfail with explicit errors until those submodule sources are initialized.zig build allrunsxcode-test(test execution), not onlyxcode-build.- The Xcode verify phase checks for the xcframework and fails with guidance if missing; it does not trigger an implicit rebuild.
Requires pnpm and Node.js.
cd web
pnpm install
pnpm dev # Dev server at http://127.0.0.1:5173
pnpm build # Production build to web/dist/Or via Zig:
zig build web # Build web app (requires pnpm)src/— Zig core (libsmithers)macos/— Swift/SwiftUI native appweb/— SolidJS web apppkg/— Vendored C/C++ dependenciesinclude/— C API headerdist/— Build artifacts (e.g., SmithersKit.xcframework)submodules/— Git submodules (Codex fork, JJ fork)scripts/— Automation and workflow tooling
- Build the framework:
zig build xcframework(outputs todist/SmithersKit.xcframework). - In Xcode, drag
dist/SmithersKit.xcframeworkinto your project (Embed & Sign not required for static libs). - In Swift, a bridging header is only needed if mixing Objective‑C(++) — Xcode exposes C headers from xcframeworks automatically. You can also use a module map.
- Linker: the xcframework archive bundles compiler-rt and SQLite. If you consume the raw Zig static library from
zig-out/, you may need to link these yourself. - Minimum macOS: 14.0 (Sonoma). For manual
clanglink tests add-mmacosx-version-min=14.0to silence ld warnings.