-
-
Notifications
You must be signed in to change notification settings - Fork 39
Contributing
Thanks for your interest in contributing to Scarf. The canonical contributor guide lives in CONTRIBUTING.md in the repo. This page is a public-facing summary plus a few wiki-specific notes.
- Fork and clone https://github.com/awizemann/scarf.
- Open
scarf/scarf.xcodeprojin Xcode 16+. Two app targets:scarf(macOS) andscarf mobile(ScarfGo, iOS). Both share the local SwiftPM packages ScarfCore,ScarfIOS, and ScarfDesign. - Build and run (requires macOS 14.6+ and Hermes installed at
~/.hermes/for the local Mac window; iOS sim or device + a SSH-reachable Hermes host for ScarfGo). - Read Build & Run for the codebase tour, Architecture Overview for the layering, and Design System for the rust palette + token usage.
The full list is in CONTRIBUTING.md. The non-negotiables:
-
MVVM-F. Features never import sibling features. Cross-feature concerns go through services or
AppCoordinator. - No commented-out code, no TODOs, no deferred functionality in PRs.
- Zero warnings on build.
-
Read-only DB access. Never write to
~/.hermes/state.db. -
Swift 6 strict concurrency.
@MainActordefault isolation;nonisolatedfor service methods. -
Conventional commits.
feat:,fix:,chore:,refactor:,docs:, etc.
- Anything in the Roadmap or ScarfGo Roadmap.
- iOS-specific gaps — Cron editor, Settings full-YAML editor, Insights / Activity views, iPad layout polish, push notifications wiring once Hermes ships a sender. See Platform Differences.
- Test coverage — see Testing for the highest-value remaining gaps (UI tests, log streaming).
- iOS localization — strings are extracted; translations welcome. See Localization.
- Templates for the public catalog — see Project Templates and the catalog at awizemann.github.io/scarf/templates/.
- Wiki content — every stub on the wiki is a pull request opportunity. See Wiki Maintenance for the workflow.
- Bug reports with reproducible steps.
- Open an issue first describing the change. This avoids rework if the maintainer has constraints in mind.
- One feature or fix per PR — keeps reviews tight.
- Include a clear description of what changed and why.
- Ensure both schemes build clean:
xcodebuild -project scarf/scarf.xcodeproj -scheme scarf -configuration Debug buildxcodebuild -project scarf/scarf.xcodeproj -scheme "scarf mobile" -configuration Debug -destination "generic/platform=iOS Simulator" build
- Run the ScarfCore test suite if you touched anything in
Packages/ScarfCore:swift test --package-path scarf/Packages/ScarfCore.
Open an issue at https://github.com/awizemann/scarf/issues with:
- What you expected to happen.
- What actually happened.
- macOS version and Hermes version.
- Steps to reproduce.
- The relevant log snippet from
~/.hermes/logs/errors.logif applicable (redact secrets first).
Two paths:
- Small wiki edits (typos, clarifications) — click Edit on any wiki page in the GitHub UI. Editing requires push access to the main repo.
-
Larger wiki changes — clone the wiki directly (
git clone git@github.com:awizemann/scarf.wiki.git) or open an issue describing what needs adding. See Wiki Maintenance for the full workflow including the secret-scan policy. -
Internal dev docs (PRD, Hermes API discovery, raw architecture notes) live in
scarf/docs/in the main repo and follow the normal PR flow.
As of v2.10.1 Scarf's repo-resident memory for AI coding sessions is managed by Memophant — a memory manager I built for exactly this. You'll see it in three places:
- A managed block at the bottom of
CLAUDE.mddescribing the layered memory system (.memory/for atomic facts via thebasic-memoryCLI,wiki/for long-form reference,design/for design system docs,TASKS.mdfor the work kanban). - Commits on
maintitled "via Memophant" (memory migrations, consolidations, wiki/design syncs) — those are repo-memory housekeeping, not Scarf app changes; you can ignore them when reading history for app work. - A
wiki/working directory + aTASKS.mdkanban file at the repo root.
Memophant will be open-sourced shortly. Until then, nothing in Scarf the app depends on it; it's a workflow tool for the repo. PRs don't need to touch any Memophant artifact — keep doing the normal feat: / fix: commits and the maintainer handles memory updates on the side.
Be kind, be specific, assume good faith. Disagreements about technical direction are welcome; personal attacks aren't.
Last updated: 2026-05-29 — Scarf v2.10.1 (Memophant memory system note)
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
- Contributing
- Wiki Maintenance
- ScarfGo Roadmap (dev reference)
Release History
Legal & Support