mirror of
https://github.com/awizemann/scarf.git
synced 2026-05-08 02:14:37 +00:00
18278a3357
Native SwiftUI app providing full visibility into the Hermes AI agent: - Dashboard with system health, token usage, and cost tracking - Sessions browser with conversation detail and FTS5 search - Activity feed with tool call inspector (read/edit/execute/fetch/browser) - Embedded terminal chat via SwiftTerm with full ANSI/Rich rendering - Memory viewer/editor with live file-watching refresh - Skills browser by category with file content viewer - Cron job viewer with output display - Real-time log tailing with level filtering - Settings display with raw config and Finder path links - Menu bar status icon with quick actions Architecture: MVVM-Feature, zero dependencies beyond SwiftTerm, read-only SQLite access, Swift 6 strict concurrency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.5 KiB
1.5 KiB
Contributing to Scarf
Thanks for your interest in contributing to Scarf.
Getting Started
- Fork and clone the repo
- Open
scarf/scarf.xcodeprojin Xcode 26.3+ - Build and run (requires macOS 26.2+ and Hermes installed at
~/.hermes/)
Architecture
Scarf uses the MVVM-Feature pattern. Each feature is a self-contained module under Features/:
Features/FeatureName/
Views/ SwiftUI views
ViewModels/ @Observable view models
Rules:
- Features never import sibling features directly
- Cross-feature navigation goes through
AppCoordinator - Services in
Core/Services/are shared across features - Models in
Core/Models/are plain structs
Guidelines
- Keep it simple. Minimal dependencies, no over-engineering.
- No commented-out code, TODOs, or deferred functionality in PRs.
- All code must build with zero warnings.
- Follow existing patterns — look at how similar features are built before adding new ones.
- The app only reads from
~/.hermes/state.db(never writes). Memory files are the exception. - Swift 6 strict concurrency:
@MainActordefault isolation,nonisolatedfor service methods.
Reporting Issues
Open an issue with:
- What you expected to happen
- What actually happened
- macOS version and Hermes version
- Steps to reproduce
Pull Requests
- Open an issue first to discuss the change
- One feature or fix per PR
- Include a clear description of what changed and why
- Ensure the project builds with
xcodebuild -project scarf/scarf.xcodeproj -scheme scarf build