--- summary: "Fork quick start: differences, commands, and planned features." read_when: - Onboarding to the fork workflow - Reviewing fork-specific changes - Running fork maintenance commands --- # CodexBar Fork - Quick Start Guide **Fork Maintainer:** Brandon Charleson ([topoffunnel.com](https://topoffunnel.com)) **Original Author:** Peter Steinberger ([steipete](https://twitter.com/steipete)) **Fork Repository:** https://github.com/topoffunnel/CodexBar --- ## 🎯 What Makes This Fork Different? ### Key Enhancements 1. **Augment Provider Support** - Full integration with Augment Code API 2. **Enhanced Security** - Improved keychain handling, no permission prompts 3. **Better Cookie Management** - Automatic session keepalive, Chrome Beta support 4. **Bug Fixes** - Cursor bonus credits, cookie domain filtering ### Planned Features - Multi-account management per provider - Enhanced diagnostics and logging - Upstream sync automation - Usage history tracking --- ## 🚀 Quick Commands ### Development ```bash # Build and run (kills old instances, builds, tests, packages, relaunches) ./Scripts/compile_and_run.sh # Quick build swift build # Run tests make test # Format code swiftformat Sources Tests swiftlint --strict # Package app ./Scripts/package_app.sh # Restart app after rebuild pkill -x CodexBar || pkill -f CodexBar.app || true cd /Users/steipete/Projects/codexbar && open -n /Users/steipete/Projects/codexbar/CodexBar.app ``` ### Release ```bash # Edit .mac-release.env first: MAC_RELEASE_REPO, feed URL, download URL, # bundle id, and Sparkle public/signing key must point at your fork. ./Scripts/release.sh # See full release process cat docs/RELEASING.md ``` ### Git Workflow ```bash # Check status git status # Create feature branch git checkout -b feature/my-feature # Commit changes git add -A git commit -m "feat: description" # Push to fork git push origin feature/my-feature # Sync with upstream (TBD - see docs/FORK_ROADMAP.md Phase 4) ``` --- ## 📁 Key Files & Directories ### Source Code - `Sources/CodexBar/` - Swift 6 menu bar app - `Sources/CodexBarCore/` - Core logic, providers, utilities - `Sources/CodexBarCore/Providers/Augment/` - Augment provider implementation - `Tests/CodexBarTests/` - XCTest coverage ### Scripts - `Scripts/compile_and_run.sh` - Main development script - `Scripts/package_app.sh` - Package app bundle - `Scripts/sign-and-notarize.sh` - Release signing - `Scripts/make_appcast.sh` - Generate appcast XML ### Documentation - `docs/augment.md` - Augment provider guide - `docs/FORK_ROADMAP.md` - Development roadmap - `docs/RELEASING.md` - Release process - `docs/DEVELOPMENT.md` - Build instructions - `README.md` - Main documentation --- ## 🔧 Common Tasks ### Adding a New Feature 1. Create feature branch: `git checkout -b feature/my-feature` 2. Make changes in `Sources/` 3. Add tests in `Tests/` 4. Run `./Scripts/compile_and_run.sh` to verify 5. Run `swiftformat Sources Tests && swiftlint --strict` 6. Commit with descriptive message 7. Push and create PR ### Debugging Augment Issues 1. Enable debug logging: `export CODEXBAR_LOG_LEVEL=debug` 2. Check Console.app for "com.steipete.codexbar" 3. Use Settings → Debug → Augment → Show Debug Info 4. Check `docs/augment.md` troubleshooting section ### Testing Changes ```bash # Run all tests make test # Run specific test swift test --filter AugmentTests # Build and test together ./Scripts/compile_and_run.sh --test ``` ### Updating Documentation 1. Edit relevant `.md` file in `docs/` 2. Update `README.md` if needed 3. Commit with `docs:` prefix 4. No need to rebuild app --- ## 🐛 Troubleshooting ### App Won't Launch ```bash # Kill all instances pkill -x CodexBar || pkill -f CodexBar.app || true # Rebuild and relaunch ./Scripts/compile_and_run.sh ``` ### Build Errors ```bash # Clean build swift package clean swift build # Check for format issues swiftformat Sources Tests --lint swiftlint --strict ``` ### Cookie Issues (Augment) 1. Check browser is logged into app.augmentcode.com 2. Verify cookie source in Settings → Providers → Augment 3. Try manual cookie import (see `docs/augment.md`) 4. Check debug logs for cookie import details ### Keychain Permission Prompts - This fork includes fixes to eliminate prompts - If you still see prompts, check `Sources/CodexBarCore/Keychain/` - Ensure you're running the latest build --- ## 📚 Learning Resources ### Understanding the Codebase 1. Start with `Sources/CodexBar/CodexbarApp.swift` - App entry point 2. Review `Sources/CodexBarCore/UsageStore.swift` - Main state management 3. Check `Sources/CodexBarCore/Providers/` - Provider implementations 4. Read `docs/provider.md` - Provider authoring guide ### Swift 6 & SwiftUI - Uses `@Observable` macro (not `ObservableObject`) - Prefer `@State` ownership over `@StateObject` - Use `@Bindable` in views for two-way binding - Strict concurrency checking enabled ### Coding Style - 4-space indentation - 120-character line limit - Explicit `self` is intentional (don't remove) - Follow existing `MARK` organization - Use descriptive variable names --- ## 🤝 Contributing ### To This Fork 1. Fork the fork repository 2. Create feature branch 3. Make changes with tests 4. Submit PR to `topoffunnel/CodexBar` ### To Upstream 1. Check if feature benefits all users 2. Create PR to `steipete/CodexBar` 3. Reference this fork if relevant 4. Be patient with review process See `docs/FORK_ROADMAP.md` for contribution strategy. --- ## 📞 Support ### Fork-Specific Issues - GitHub Issues: https://github.com/topoffunnel/CodexBar/issues - Email: [your-email]@topoffunnel.com ### Upstream Issues - GitHub Issues: https://github.com/steipete/CodexBar/issues - Twitter: [@steipete](https://twitter.com/steipete) --- ## 📋 Next Steps 1. **Read the Roadmap:** `docs/FORK_ROADMAP.md` 2. **Set Up Development:** `./Scripts/compile_and_run.sh` 3. **Review Augment Docs:** `docs/augment.md` 4. **Check Current Issues:** GitHub Issues tab 5. **Join Development:** Pick a task from Phase 2-5 --- ## 🎉 Quick Wins Want to contribute but not sure where to start? Try these: - [ ] Add more test coverage for Augment provider - [ ] Improve error messages in cookie import - [ ] Add screenshots to `docs/augment.md` - [ ] Test on different macOS versions - [ ] Report bugs you find - [ ] Suggest UI improvements Happy coding! 🚀