* auto-claude: subtask-1-1 - Create PR status type definitions Add TypeScript types for the smart PR status polling system: - ChecksStatus, ReviewsStatus, MergeableState status types - PRStatus interface for individual PR status data - PollingMetadata interface for polling state tracking - ETagCache types for conditional request support - PRStatusUpdate, StartPollingRequest, StopPollingRequest IPC types - RateLimitInfo and GitHubFetchResult for API response handling - Constants for polling intervals and rate limit thresholds Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-1-2 - Add IPC channel constants for PR status polling Added three IPC channel constants for GitHub PR status polling: - GITHUB_PR_STATUS_POLL_START: Start polling PR status - GITHUB_PR_STATUS_POLL_STOP: Stop polling PR status - GITHUB_PR_STATUS_UPDATE: Event for PR status updates (main -> renderer) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-2-1 - Extend githubFetch with ETag and rate limit support - Add ETagCacheEntry and ETagCache interfaces for conditional requests - Add RateLimitInfo interface for X-RateLimit-Remaining/Reset headers - Add GitHubFetchWithETagResult interface for typed responses - Add extractRateLimitInfo() to parse rate limit headers - Add getETagCache() and clearETagCache() for cache management - Add githubFetchWithETag() for conditional requests with If-None-Match - 304 responses return cached data without consuming rate limit Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-3-1 - Create PRStatusPoller class with startPolling, stopPolling methods * auto-claude: subtask-3-2 - Add unit tests for PRStatusPoller Add comprehensive unit tests for the PRStatusPoller service covering: - ETag caching behavior (cache storage, 304 responses, cache clearing) - PR classification (active vs stable based on 30-minute activity threshold) - Rate limit handling (pause when below threshold, resume scheduling) - Timer management (start/stop polling, interval verification) - Singleton pattern and instance management - Project ID parsing and validation - PR management (add/remove PRs from polling context) - Status aggregation for CI checks and reviews - Main window integration for IPC updates - Error handling and metadata tracking - Mergeable state handling with retry scheduling Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-4-1 - Add IPC handlers for PR status polling Added 3 IPC handlers for PR status polling to pr-handlers.ts: - GITHUB_PR_STATUS_POLL_START: Start polling PR status for a project - GITHUB_PR_STATUS_POLL_STOP: Stop polling PR status for a project - GITHUB_PR_STATUS_UPDATE: Get current polling metadata for a project Wired up PRStatusPoller service with main window getter to emit status updates to renderer via IPC channel. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-4-2 - Register polling handlers in the GitHub handlers i - Updated github handlers index.ts documentation to include pr-handlers and triage-handlers - Added PR status polling methods to preload GitHub API: - startStatusPolling: Start background polling for PR status - stopStatusPolling: Stop background polling for a project - getPollingMetadata: Get current polling metadata (rate limits, errors) - onPRStatusUpdate: Subscribe to PR status updates from polling - Exported pr-status types from shared types index - Renamed RateLimitInfo to GitHubRateLimitInfo in pr-status.ts to avoid conflict with terminal.ts - Added polling mock implementations to browser-mock.ts for testing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-5-1 - Add PR status fields to pr-review-store - Add checksStatus, reviewsStatus, mergeableState, lastPolled fields to PRReviewState interface - Add setPRStatus and clearPRStatus actions for managing status polling data - Add IPC listener for onPRStatusUpdate in initializePRReviewListeners() - Preserve status fields in all existing actions (startPRReview, startFollowupReview, etc.) - Import types from shared/types/pr-status.ts for type safety Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-6-1 - Create StatusIndicator component to display CI sta Create StatusIndicator component to display CI status (success/pending/failure icons), review status (approved/changes_requested/pending badges), and merge readiness for GitHub PRs. Components included: - CIStatusIcon: Shows check circle (success), spinner (pending), or X (failure) - ReviewStatusBadge: Badge with status text and icon - MergeReadinessIcon: Shows merge readiness state (clean/dirty/blocked) - StatusIndicator: Combines all status indicators with compact mode support - CompactStatusIndicator: Minimal icon-only version for tight spaces Follows existing patterns from PRList.tsx and uses shared types from pr-status.ts. Uses i18n translation keys for all user-facing text. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-6-2 - Integrate StatusIndicator into PRList component Add compact status indicators (CI checks, reviews, mergeability) to each PR in the list view alongside the existing PRStatusFlow dots: - Import CompactStatusIndicator from StatusIndicator - Extend PRReviewInfo interface with checksStatus, reviewsStatus, mergeableState - Update getReviewStateForPR to return status fields from the store - Add CompactStatusIndicator to the PR metadata row (hidden merge status for compact display) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-6-3 - Update useGitHubPRs hook to trigger polling start * auto-claude: subtask-7-1 - Add translation keys for PR status indicators (CI success/pending/failure, review approved/changes_requested/pending, merge ready/blocked/conflict) to both en and fr locale files Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * auto-claude: subtask-8-1 - Add integration tests for polling lifecycle Added comprehensive integration tests for PRStatusPoller covering: - Start/stop polling on project change (lifecycle management) - Status updates flow to UI via IPC (renderer communication) - Token refresh handling during active polling - PR management during polling (add/remove PRs) - Error recovery (network errors, rate limits) - Concurrent project polling All 25 integration tests pass. Tests verify: - Multiple projects can poll simultaneously - Project switching properly cleans up old contexts - Token refresh preserves polling state - IPC updates include correct project and status data - Rate limit pausing affects all active contexts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Fix PR review findings: ETag cache, rate limit detection, staggered resume, poll timestamps - Add project-scoped ETag cache clearing (clearETagCacheForProject) so stopping one project's polling doesn't invalidate other projects' caches - Add TTL-based eviction (30min) and max size cap (200 entries) to prevent unbounded ETag cache growth in long-running sessions - Refine rate limit 403 detection to check rateLimitInfo.remaining before pausing, distinguishing rate limits from permission-denied errors - Stagger resumed polling across contexts (5s apart) after rate limit reset to avoid burst re-triggering - Track actual lastPollCycle timestamp per context instead of returning current time, giving the UI accurate poll timing info - Update test mocks to match renamed clearETagCacheForProject import Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix double-renamed mock variable in test files The replace_all for mockClearETagCache -> mockClearETagCacheForProject also caught the already-renamed text inside the vi.mock factory, producing mockClearETagCacheForProjectForProject. Fix the const declaration and mock factory reference to use the correct name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix failing rate limit tests: correct 403 detection logic and async timer flush The catch-block logic required rateLimitInfo to be set AND below threshold, but in the unit test no prior successful fetch set rateLimitInfo (null). Fix: pause on 403 if rateLimitInfo is null (can't rule out rate limit) OR below threshold. A permission-denied 403 with healthy remaining won't pause. For the integration test, use advanceTimersByTimeAsync to properly flush the microtask queue for fire-and-forget async poll callbacks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix review findings: track staggered timeouts, eliminate duplicate PR fetch - Track staggered resume setTimeout refs in staggeredResumeTimeouts array and clear them in stopAllPolling/resumePolling to prevent stale callbacks - Pass headSha from fetchPRStatus to fetchChecksStatus, eliminating a duplicate PR endpoint fetch that wasted one API call per poll cycle - Update PRData interface to include head.sha field - Remove duplicate PR endpoint mock entries from test setupFullPollingMocks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix review findings: sort reviews by timestamp, simplify check, remove unused constant - Sort reviews by submitted_at before building latest-per-user map so aggregation doesn't depend on undocumented GitHub API array ordering - Simplify hasActionableReview to only check PENDING since APPROVED and CHANGES_REQUESTED already cause early returns above - Remove unused RESUME_THRESHOLD constant from RATE_LIMIT_THRESHOLDS - Add submitted_at field to ReviewsResponse interface and test mocks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix useEffect dependency, add concurrent PR polling, optimize ETag eviction - Add projectId to useEffect dependency array so state resets on project switch - Replace sequential PR polling with batched Promise.allSettled (concurrency 5) - Amortize ETag cache eviction to run every 10th write instead of every write Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix polling restart spam, stale context guard, eviction reset, error log suppression - Memoize PR numbers in useEffect dependency to prevent excessive polling restarts - Guard staggered resume timeouts against stale contexts after stopPolling - Reset eviction write counter in clearETagCache for consistent test state - Add consecutive error tracking to suppress repeated log spam per PR Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Auto Claude
Autonomous multi-agent coding framework that plans, builds, and validates software for you.
Download
Stable Release
| Platform | Download |
|---|---|
| Windows | Auto-Claude-2.7.5-win32-x64.exe |
| macOS (Apple Silicon) | Auto-Claude-2.7.5-darwin-arm64.dmg |
| macOS (Intel) | Auto-Claude-2.7.5-darwin-x64.dmg |
| Linux | Auto-Claude-2.7.5-linux-x86_64.AppImage |
| Linux (Debian) | Auto-Claude-2.7.5-linux-amd64.deb |
| Linux (Flatpak) | Auto-Claude-2.7.5-linux-x86_64.flatpak |
Beta Release
⚠️ Beta releases may contain bugs and breaking changes. View all releases
| Platform | Download |
|---|---|
| Windows | Auto-Claude-2.7.6-beta.2-win32-x64.exe |
| macOS (Apple Silicon) | Auto-Claude-2.7.6-beta.2-darwin-arm64.dmg |
| macOS (Intel) | Auto-Claude-2.7.6-beta.2-darwin-x64.dmg |
| Linux | Auto-Claude-2.7.6-beta.2-linux-x86_64.AppImage |
| Linux (Debian) | Auto-Claude-2.7.6-beta.2-linux-amd64.deb |
| Linux (Flatpak) | Auto-Claude-2.7.6-beta.2-linux-x86_64.flatpak |
All releases include SHA256 checksums and VirusTotal scan results for security verification.
Requirements
- Claude Pro/Max subscription - Get one here
- Claude Code CLI -
npm install -g @anthropic-ai/claude-code - Git repository - Your project must be initialized as a git repo
Quick Start
- Download and install the app for your platform
- Open your project - Select a git repository folder
- Connect Claude - The app will guide you through OAuth setup
- Create a task - Describe what you want to build
- Watch it work - Agents plan, code, and validate autonomously
Features
| Feature | Description |
|---|---|
| Autonomous Tasks | Describe your goal; agents handle planning, implementation, and validation |
| Parallel Execution | Run multiple builds simultaneously with up to 12 agent terminals |
| Isolated Workspaces | All changes happen in git worktrees - your main branch stays safe |
| Self-Validating QA | Built-in quality assurance loop catches issues before you review |
| AI-Powered Merge | Automatic conflict resolution when integrating back to main |
| Memory Layer | Agents retain insights across sessions for smarter builds |
| GitHub/GitLab Integration | Import issues, investigate with AI, create merge requests |
| Linear Integration | Sync tasks with Linear for team progress tracking |
| Cross-Platform | Native desktop apps for Windows, macOS, and Linux |
| Auto-Updates | App updates automatically when new versions are released |
Interface
Kanban Board
Visual task management from planning through completion. Create tasks and monitor agent progress in real-time.
Agent Terminals
AI-powered terminals with one-click task context injection. Spawn multiple agents for parallel work.
Roadmap
AI-assisted feature planning with competitor analysis and audience targeting.
Additional Features
- Insights - Chat interface for exploring your codebase
- Ideation - Discover improvements, performance issues, and vulnerabilities
- Changelog - Generate release notes from completed tasks
Project Structure
Auto-Claude/
├── apps/
│ ├── backend/ # Python agents, specs, QA pipeline
│ └── frontend/ # Electron desktop application
├── guides/ # Additional documentation
├── tests/ # Test suite
└── scripts/ # Build utilities
CLI Usage
For headless operation, CI/CD integration, or terminal-only workflows:
cd apps/backend
# Create a spec interactively
python spec_runner.py --interactive
# Run autonomous build
python run.py --spec 001
# Review and merge
python run.py --spec 001 --review
python run.py --spec 001 --merge
See guides/CLI-USAGE.md for complete CLI documentation.
Development
Want to build from source or contribute? See CONTRIBUTING.md for complete development setup instructions.
For Linux-specific builds (Flatpak, AppImage), see guides/linux.md.
Security
Auto Claude uses a three-layer security model:
- OS Sandbox - Bash commands run in isolation
- Filesystem Restrictions - Operations limited to project directory
- Dynamic Command Allowlist - Only approved commands based on detected project stack
All releases are:
- Scanned with VirusTotal before publishing
- Include SHA256 checksums for verification
- Code-signed where applicable (macOS)
Available Scripts
| Command | Description |
|---|---|
npm run install:all |
Install backend and frontend dependencies |
npm start |
Build and run the desktop app |
npm run dev |
Run in development mode with hot reload |
npm run package |
Package for current platform |
npm run package:mac |
Package for macOS |
npm run package:win |
Package for Windows |
npm run package:linux |
Package for Linux |
npm run package:flatpak |
Package as Flatpak (see guides/linux.md) |
npm run lint |
Run linter |
npm test |
Run frontend tests |
npm run test:backend |
Run backend tests |
Contributing
We welcome contributions! Please read CONTRIBUTING.md for:
- Development setup instructions
- Code style guidelines
- Testing requirements
- Pull request process
Community
- Discord - Join our community
- Issues - Report bugs or request features
- Discussions - Ask questions
License
AGPL-3.0 - GNU Affero General Public License v3.0
Auto Claude is free to use. If you modify and distribute it, or run it as a service, your code must also be open source under AGPL-3.0.
Commercial licensing available for closed-source use cases.


