Profile
Back to NewsBack
GitHub Trending 5 min
Reader Mode
samuelfaj/MacCode: Bots, Agents, subagents, terminals, SSH, browser, Git, and IDE are all in one app built for agentic coding.

samuelfaj/MacCode: Bots, Agents, subagents, terminals, SSH, browser, Git, and IDE are all in one app built for agentic coding.

10 hours ago

!MacCode in action

MacCode

MacCode is a native macOS development cockpit. It keeps agents, terminals, browsers, files, and git in one workspace, and lets you control that workspace from the Mac or from an iPhone.

The Mac is the source of truth. Agents, shells, git, browsers, and files run on the Mac. Remote clients mirror and control that host state instead of running their own copies.

Download

Download the latest release for Apple Silicon (DMG)

Features

  • Agent App: run agent threads from Codex, Claude Code, Grok, and Distill. Choose provider, model, reasoning effort, permissions, and execution mode before a run. Run in local mode or an isolated worktree. Queue follow-ups, attach files, approve or deny provider actions, and answer provider questions. Threads restore after restart.
  • Terminal: real macOS terminal tabs (Ghostty) scoped to each workspace, with ANSI styling and persistent scrollback.
  • SSH: saved host profiles scoped to a workspace, with reconnect and file transfer while connected.
  • Browser: embedded browser surfaces with a local address field. Open the current URL in the default browser.
  • Files: browse workspace files and preview supported file types. Hidden previews unload.
  • Git: git and diff surfaces, changed-file review, and git context in the Agent composer.
  • Workspaces and panes: multiple workspaces, each with its own working directory. Tabs can be split, dragged between panes, and minimized. Layout, tabs, and workspace state persist across launches.
  • Bots and Schedule Tasks: run agents as Bots and schedule Bot and workspace tasks.
  • iPhone remote control: pair an iPhone over the local network or VPN. The phone mirrors workspaces, threads, terminals, browser surfaces, and git state, and can send prompts, answer provider requests, and stop runs. The iPhone companion app is closed source.

Requirements

  • macOS 14 or later (Package.swift: .macOS(.v14)).
  • Xcode with the macOS SDK. Releases are built with Xcode 27.
  • Git and Git LFS. Vendor/GhosttyKit.xcframework is stored in Git LFS.
  • The release DMG is built for Apple Silicon (arm64). GhosttyKit.xcframework also contains an x86_64 slice, but Intel builds are not part of the release process.

Build From Source

git lfs install
git clone https://github.com/samuelfaj/MacCode.git
cd MacCode
git lfs pull
scripts/bootstrap.sh
swift build --product RemoteCode

If xcode-select points at the Command Line Tools, set the developer directory first:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

Tests

scripts/test-unit.sh

scripts/test-unit.sh runs swift test and selects the Xcode developer directory when XCTest is available there. Set RC2_COVERAGE=1 to produce a coverage report. Focused runs can use swift test --filter .

Run the App

Run the debug app inside the isolated sandbox from a linked git worktree:

cd "$(scripts/isolated-sandbox.sh ensure)"
scripts/isolated-sandbox.sh run

The sandbox builds and launches io.remotecode.desktop.debug with its own Application Support directory, SQLite store, and HTTP port (18218 by default). An installed MacCode app (io.remotecode.desktop) is not affected. Use scripts/isolated-sandbox.sh stop to stop the sandbox app. script/build_and_run.sh runs the same sandbox flow.

scripts/isolated-sandbox.sh test runs the test suite in the sandbox worktree.

Local Package

scripts/package-app.sh builds a local MacCode.app into dist/. The output is not a release artifact. scripts/package-dmg.sh builds the signed DMG and requires a Developer ID Application identity in RC2_CODESIGN_IDENTITY.

Project Layout

Modules under Sources/:

| Module | Purpose | | --- | --- | | AppShell | macOS app shell: workspaces, tabs, panes, settings, command routing, lifecycle | | Surfaces | Native surfaces: Agent App, Terminal, Browser, Files, Git/Diff, previews | | AgentRuntime | Provider adapters (Codex, Claude Code, Grok, Distill), streaming, approvals, session recovery | | SocketServer | Local HTTP, RPC, and WebSocket API, pairing, event streams, remote dispatch | | CoreModel | Shared workspace, surface, agent, provider, and event models | | Persistence | SQLite storage for settings, workspaces, threads, messages, queues, and trusted devices | | DesignSystemKit | Shared design tokens and native UI components | | AppLifecycleSupport | App lifecycle helpers | | RemoteCodeTreaty | Host RPC contract types shared with remote clients | | RemoteCodeDistillService | Helper executable: provider proxy, Agent App middleware, subagent telemetry, Chrome host, bot and computer-use MCP servers | | RemoteCodeScheduledTaskAgent | Executable that runs scheduled tasks | | RemoteCodeRunAsUserHelper | Executable for the privileged run-as-user helper | | RC2CLI | rc2 command-line tool | | CSystem | C system bridge used by the Swift modules |

Tests live in Tests/, one target per module. Build and helper scripts live in scripts/ and script/.

Releases

Releases are for maintainers only. Pushing a vX.Y.Z tag to GitHub starts .github/workflows/release.yml on a GitHub-hosted Xcode 27 runner. The workflow runs scripts/release-stable.sh, which signs and notarizes the DMG, publishes it and the Sparkle appcast to remotecode.io, and creates the GitHub release.

Contributing

  1. Branch from main.
  2. Open a pull request against main.
  3. Read AGENTS.md and DESIGN.md before changing behavior or UI. Both are binding for this repository.
  4. Keep macOS and iOS in sync. Browser state, workspace state, and remote-control behavior must match on both sides. The iOS companion app is closed source, so iOS changes cannot be tested from this repository.
  5. Run scripts/test-unit.sh and verify UI changes in the isolated sandbox app.

Security

Do not report vulnerabilities in public issues. Email [email protected] with the details. Include steps to reproduce if you can.

License

MIT. See LICENSE. Third-party notices are in THIRD_PARTY_NOTICES.md. Ghostty and Sparkle are MIT-licensed.

Chat with me