-
-
Notifications
You must be signed in to change notification settings - Fork 41
Build and Run
Scarf is a single Xcode target with one SPM dependency (Sparkle). No CocoaPods, no Carthage, no submodules.
- macOS 14.6+ (Sonoma) on the dev machine.
- Xcode 16.0+.
-
Hermes at
~/.hermes/(so the local server window has something to point at — see First Run).
git clone https://github.com/awizemann/scarf.git
cd scarf
open scarf/scarf.xcodeprojThe project uses PBXFileSystemSynchronizedRootGroup — Xcode auto-discovers any new file you drop into the source tree. You don't need to manually add files to the target.
Build with ⌘B; run with ⌘R.
Debug build:
xcodebuild -project scarf/scarf.xcodeproj -scheme scarf -configuration Debug buildUniversal release build (matches what the release script produces):
xcodebuild -project scarf/scarf.xcodeproj -scheme scarf \
-configuration Release \
-arch arm64 -arch x86_64 ONLY_ACTIVE_ARCH=NO buildscarf/ repo root
CLAUDE.md project instructions for Claude Code
CONTRIBUTING.md
README.md
releases/v<ver>/ per-version notes + appcast entry
scripts/
release.sh full release pipeline
wiki.sh this wiki helper
ExportOptions.plist
scarf/ Xcode project root
scarf.xcodeproj
docs/ internal dev notes (PRD, Discovery, ARCH)
standards/ read-only reference standards
scarf/ APP TARGET — start here
scarfApp.swift @main App
ContentView.swift window root
Core/
Services/ 9 services
Models/ 13+ models
Transport/ 4 transport files
Persistence/ ServerRegistry
Utilities/ markdown helpers
Features/ 25 feature modules
Navigation/ AppCoordinator + SidebarView
Assets.xcassets
Info.plist
scarf.entitlements
scarfTests/
scarfUITests/
The project compiles with strict concurrency on. Two non-negotiables (detail in CLAUDE.md):
-
@MainActoris the default isolation. Services usenonisolatedasync methods and route results back to MainActor for UI updates. - All closures captured by
Task,Task.detached, orwithCheckedThrowingContinuationmust be@Sendable. Don't capture non-Sendable types across concurrency boundaries.
-
scarfApp.swift— App entry point, multi-window setup,ContextBoundRootinjecting theServerContextand friends. -
Navigation/AppCoordinator.swift— single source of truth for navigation. -
Core/Models/ServerContext.swift— the unified handle to a Hermes install. -
Core/Transport/— local vs. SSH abstraction. - Any feature module under
Features/for the MVVM-F shape.
xcodebuild test -project scarf/scarf.xcodeproj -scheme scarfSee Testing for what is and isn't tested.
Don't run xcodebuild archive / notarytool / gh release create by hand — use the release script. See Release Process.
Last updated: 2026-04-20 — Scarf v2.0.1
Wiki edited via the local .wiki-worktree/ clone. See Wiki Maintenance for the workflow. Last sync: 2026-04-20.
Getting Started
ScarfGo (iOS)
User Guide
- Dashboard
- Insights & Activity
- Chat
- Slash Commands
- Memory & Skills
- Projects & Profiles
- Project Templates
- Template Catalog
- Template Ideas
- Platforms / Personalities / Quick Commands
- Servers & Remote
- MCP, Plugins, Webhooks, Tools
- Gateway / Cron / Health / Logs
Architecture
- Overview
- Core Services
- Design System
- Data Model
- Transport Layer
- ScarfCore Package
- Sidebar & Navigation
- ACP Subprocess
Developer Guide
Reference
Troubleshooting
Contributing
Release History
Legal & Support
Unsorted