<h3 align="center">claude-cto ๐ฟ your ai coding agents' cto that gets shit done 10x faster</h3>
<p align="center">
<strong>
<em>your AI squad on crack: tasks run in parallel, smart waits handle dependent tasks, workflows fly on autopilot. ship code at ludicrous speed while making the vibe coding more enjoyable</em>
</strong>
> wanna get some sleep but still not used your Opus limit? just queue more tasks before the 5 AM reset ๐
</p>
<p align="center">
<!-- Package Info -->
<a href="#"><img alt="pypi" src="https://img.shields.io/pypi/v/claude-cto.svg?style=flat-square&color=4D87E6"></a>
<a href="#"><img alt="python" src="https://img.shields.io/badge/python-3.10+-4D87E6.svg?style=flat-square"></a>
โข
<!-- Features -->
<a href="#"><img alt="license" src="https://img.shields.io/badge/License-MIT-F9A825.svg?style=flat-square"></a>
<a href="#"><img alt="mcp compatible" src="https://img.shields.io/badge/MCP-Compatible-2ED573.svg?style=flat-square"></a>
</p>
<p align="center">
<img alt="no api key needed" src="https://img.shields.io/badge/โ
_no_api_key_needed-uses_your_claude_sub-2ED573.svg?style=for-the-badge">
<img alt="zero config" src="https://img.shields.io/badge/โ๏ธ_zero_config-plug_&_play-2ED573.svg?style=for-the-badge">
</p>
<div align="center">
### ๐งญ Quick Navigation
[**โก Get Started**](#-get-cooking-in-60-seconds) โข
[**๐ฏ Real Example**](#-real-case-building-a-calorie-counter-in-minutes-wclaude-cto) โข
[**๐ป CLI Dashboard**](#-your-mission-control-the-cli-dashboard) โข
[**๐ ๏ธ REST API**](#๏ธ-rest-api-your-integration-playground) โข
[**๐ณ Docker**](#-deployment-options) โข
[**โจ Features**](#-feature-breakdown-the-tech-sauce)
</div>
---
**`claude-cto`** is your AI dream team on steroids. stop doing that one-task-at-a-time workflow โ now you've got a whole squad of ai devs (opus for the heavy stuff, sonnet for mid-tier, haiku for the easy wins) cracking code simultaneously while you sip your coffee โ
<div align="center">
<table>
<tr>
<td align="center">
<h3>โก</h3>
<b>10x Faster</b><br/>
<sub>Parallel execution</sub>
</td>
<td align="center">
<h3>๐ง </h3>
<b>Smart AF</b><br/>
<sub>Dependency resolution</sub>
</td>
<td align="center">
<h3>๐ฅ</h3>
<b>Never Fails</b><br/>
<sub>Auto-retries & circuit breakers</sub>
</td>
</tr>
</table>
</div>
how it slaps:
- you're the big-picture boss
- claude-cto handles the boring pm work
- subtle notifications keep you in the loop without killing your vibe
---
## ๐ฅ why claude-cto claps traditional workflows
we've hacked the claude code sdk with that spicy `--dangerously-skip-permissions` flag to make your ai go brrrrr:
1. cooks up a bulletproof game plan
2. delegates like a machine
3. handles task dependencies so smooth you'll think it's cheating
<details open>
<summary><b>โก Performance Comparison: See the Difference</b></summary>
### claude-cto: advantage of parallel execution
```mermaid
graph LR
Start[๐ฏ kickoff]:::start
subgraph SG1["STAGE 1<br/>โฐ 4m (auth_system)"]
S1A[setup_database<br/>3m]:::stage1
S1B[auth_system<br/>4m]:::stage1
end
subgraph SG2["STAGE 2<br/>โฐ 5m (api_endpoints)"]
S2A[api_endpoints<br/>5m]:::stage2
S2B[payment_integration<br/>3m]:::stage2
S2C[frontend_app<br/>4m]:::stage2
end
subgraph SG3["STAGE 3<br/>โฐ 2m (deploy_production)"]
S3A[deploy_production<br/>2m]:::stage3
end
Final[๐ launched]:::final
Total[โฑ๏ธ 11m total<br/>4m + 5m + 2m]:::timeFast
Start ==> S1A
Start ==> S1B
S1A ==> S2A
S1B ==> S2A
S1A ==> S2B
S1B ==> S2B
S1A ==> S2C
S1B ==> S2C
S2A ==> S3A
S2B ==> S3A
S2C ==> S3A
S3A ==> Final
classDef start fill:#7950f2,stroke:#6741d9,stroke-width:3px,color:#fff
classDef stage1 fill:#ffd43b,stroke:#fab005,stroke-width:2px,color:#000
classDef stage2 fill:#4dabf7,stroke:#339af0,stroke-width:2px,color:#fff
classDef stage3 fill:#51cf66,stroke:#2f9e44,stroke-width:2px,color:#fff
classDef final fill:#ff6b6b,stroke:#f03e3e,stroke-width:3px,color:#fff
classDef timeFast fill:#20c997,stroke:#12b886,stroke-width:2px,color:#fff
linkStyle default stroke:#51cf66,stroke-width:3px
```
### classic claude code approach: sequential execution
```mermaid
graph LR
Start[๐ฏ kickoff]:::start
S1[setup_database<br/>3m]:::stage1
S2[auth_system<br/>4m]:::stage1
S3[api_endpoints<br/>5m]:::stage2
S4[payment_integration<br/>3m]:::stage2
S5[frontend_app<br/>4m]:::stage2
S6[deploy_production<br/>2m]:::stage3
Final[๐ launched]:::final
Start ==> S1 ==> S2 ==> S3 ==> S4 ==> S5 ==> S6 ==> Final
Total[โฑ๏ธ 21m total<br/>Sequential execution]:::timeSlow
classDef start fill:#7950f2,stroke:#6741d9,stroke-width:3px,color:#fff
classDef stage1 fill:#ffd43b,stroke:#fab005,stroke-width:2px,color:#000
classDef stage2 fill:#4dabf7,stroke:#339af0,stroke-width:2px,color:#fff
classDef stage3 fill:#51cf66,stroke:#2f9e44,stroke-width:2px,color:#fff
classDef final fill:#ff6b6b,stroke:#f03e3e,stroke-width:3px,color:#fff
classDef timeSlow fill:#ffa94d,stroke:#fd7e14,stroke-width:2px,color:#000
linkStyle default stroke:#51cf66,stroke-width:3px
```
</details>
<table align="center">
<tr>
<td align="center"><b>โ Old Way</b><br/><sub>Sequential = Slow</sub></td>
<td align="center"><b>โ
With claude-cto</b><br/><sub>Parallel = Fast AF</sub></td>
</tr>
<tr>
<td>
```
21 minutes of pain
task1 โ task2 โ task3 โ task4
```
</td>
<td>
```
11 minutes of glory
task1 โถ
task2 โถ } โ task4
task3 โถ
```
</td>
</tr>
</table>
---
## ๐ง let your AI be the CTO - the real power move
this is where shit gets wild. instead of micromanaging like some middle manager, you let claude wear the cto hat. drop a high-level goal and watch it use `claude-cto`'s toolkit to plan, delegate, and execute like a boss.
### the mcp tool belt ๐งฐ
<details>
<summary><b>๐ Available MCP Tools (click to expand)</b></summary>
once installed, claude gets these shiny new toys to whip your ai team into shape:
| tool | what it does |
| :---: | :--- |
| **`create_task`**<br/>๐ | **delegate like a pro**: assigns jobs to ai workers with optional dependencies |
| **`submit_orchestration`**<br/>๐ | **the big red button**: launches entire task groups in one go |
| **`get_task_status`**<br/>๐ | **spy mode**: checks up on a single worker's progress |
| **`list_tasks`**<br/>๐ | **mission control**: shows what the whole squad's cooking |
| **`check_api_health`**<br/>โค๏ธ | **pulse check**: makes sure the engine's purring |
</details>
---
# ๐ธ real case: building a calorie counter in minutes w/claude-cto
watch how claude architects a photo-to-calories app like a 10x engineer on red bull.
## you drop the mic:
> "yo, need a mobile app that identifies food from photos and tracks calories. full AI integration, slick UI, the works. make it happen."
## claude's game plan (internal monologue):
<details>
<summary><b>๐ง Claude's Master Plan (click to see the strategy)</b></summary>
> "aight bet. this is a classic waterfall-but-make-it-parallel situation:
>
> 1. **phase 1 (laying groundwork)**: app scaffold + database + AI research all go brrr at once
> 2. **phase 2 (the magic)**: camera + food recognition + nutrition math run parallel where deps allow
> 3. **phase 3 (make it pretty)**: UI + manual entry + analytics dashboard spawn when ready
> 4. **phase 4 (ship it)**: tests then optimization - can't polish what ain't built
>
> tagging this whole circus as `calorie_counter` crew."
```mermaid
graph TD
subgraph "๐ฑ Phase 1: Foundation (parallel)"
A[๐ฑ setup_mobile_app]:::phase1
B[๐๏ธ design_database]:::phase1
C[๐ research_ai_apis]:::phase1
end
subgraph "๐๏ธ Phase 2: Core Features (parallel)"
D[๐ท camera_module]:::phase2
E[๐ค food_recognition]:::phase2
F[๐งฎ nutrition_engine]:::phase2
end
subgraph "โจ Phase 3: User Experience (parallel)"
G[๐จ ui_screens]:::phase3
H[โ๏ธ manual_entry]:::phase3
I[๐ analytics_dashboard]:::phase3
end
subgraph "๐ Phase 4: Launch Ready"
J[๐งช testing_suite]:::phase4
K[โก app_optimization]:::phase4
end
A --> D
A --> G
B --> F
B --> I
C --> E
D --> E
E --> F
F --> G
F --> H
G --> J
H --> J
I --> J
J --> K
classDef phase1 fill:#FF6B6B,stroke:#C92A2A,color:#fff
classDef phase2 fill:#4ECDC4,stroke:#15AAA0,color:#fff
classDef phase3 fill:#45B7D1,stroke:#2196F3,color:#fff
classDef phase4 fill:#96CEB4,stroke:#4CAF50,color:#fff
```
</details>
## claude starts delegating (`create_task` calls):
<details>
<summary><b>๐ฑ Phase 1: Foundation Setup (parallel ops)</b></summary>
```python
# Claude's Tool Call:
create_task(
task_identifier="foundation_setup",
orchestration_group="calorie_counter",
execution_prompt="""
Task A: React Native TypeScript Initialize โ [1]Run npx react-native init SnapCalories --template react-native-template-typescript, create /src with subdirs: /screens, /components, /services, /db, /utils, /store, /navigation, /types โ [2]Install core: yarn add @react-navigation/native @react-navigation/bottom-tabs @reduxjs/toolkit react-redux redux-persist @react-native-async-storage/async-storage react-native-screens react-native-safe-area-context โ [3]Configure tsconfig.json with "strict": true, paths: {"@screens/*": ["src/screens/*"], "@components/*": ["src/components/*"]}, setup .prettierrc with singleQuote, no semicolons โ (Review: yarn start launches Metro, TypeScript compiles without errors|Retest: Import @screens/Home works|Failโ[2])
Task B: Navigation Redux Store Setup โ [1]Create /src/navigation/AppNavigator.tsx with createBottomTabNavigator containing 5 tabs: HomeScreen, SearchScreen, CameraScreen, HistoryScreen, ProfileScreen with icons from react-native-vector-icons/Ionicons โ [2]Setup Redux in /src/store/index.ts: configureStore with userSlice (name, goals, preferences), mealsSlice (recent, favorites), persistConfig whitelist: ['user', 'preferences'] โ [3]Wrap App.tsx with Provider and PersistGate, create placeholder screens that display their name, verify tab navigation works โ (Review: All 5 tabs navigate correctly, Redux DevTools shows state|Retest: Kill app, reopen, user preferences persist|Failโ[2]) [Req: Task A]
""",
model="sonnet"
)
# Claude's Tool Call:
create_task(
task_identifier="database_schema",
orchestration_group="calorie_counter",
execution_prompt="""
Task C: SQLite Database Schema Implementation โ [1]Install react-native-sqlite-storage, create /src/db/schema.ts with tables: users(id TEXT PRIMARY KEY, email TEXT UNIQUE, goals_json TEXT, created_at INTEGER), meals(id TEXT, user_id TEXT, type TEXT, logged_at INTEGER, total_calories REAL, photo_path TEXT) โ [2]Add food_items(id TEXT, meal_id TEXT, name TEXT, quantity REAL, unit TEXT, calories REAL, protein REAL, carbs REAL, fat REAL), food_database(id TEXT, name TEXT, brand TEXT, barcode TEXT UNIQUE, calories REAL, protein REAL, carbs REAL, fat REAL) โ [3]Create DatabaseService class with init(), executeSql(), methods for createTables(), dropTables(), verify tables exist with SELECT name FROM sqlite_master โ (Review: All 4 tables created successfully|Retest: Insert and retrieve test meal|Failโ[1]) [Req: Task A]
Task D: Database Seed Indexes Migrations โ [1]Create /src/db/seeds/foods.json with 5000 USDA foods: each having name, calories, protein, carbs, fat, serving_size, import with transaction INSERT OR IGNORE โ [2]Add indexes: CREATE INDEX idx_meals_date ON meals(user_id, logged_at DESC); CREATE INDEX idx_food_name ON food_database(name); CREATE INDEX idx_barcode ON food_database(barcode) โ [3]Implement migration system: migrations table tracking version, up/down functions, test by adding test column then rolling back โ (Review: SELECT * FROM food_database WHERE name LIKE '%chicken%' returns in <50ms|Retest: 1000 meal inserts complete <2s|Failโ[2]) [Req: Task C]
Task E: API Keys Service Configuration โ [1]Setup Clarifai: create account at clarifai.com, get API key, install @clarifai/nodejs-grpc, create /src/services/ClarifaiService.ts with class containing apiKey from env โ [2]Setup OpenFoodFacts: no key needed, install node-fetch, create /src/services/BarcodeService.ts with lookupBarcode(code) method calling https://world.openfoodfacts.org/api/v0/product/{code}.json โ [3]Create unified FoodAPIService that wraps both, with methods recognizeImage(base64) and scanBarcode(code), add mock mode for testing without API calls โ (Review: Mock mode returns fake data, API mode requires keys|Retest: Invalid API key throws clear error|Failโ[1]) [Req: Task D]
""",
depends_on=["foundation_setup"],
model="sonnet"
)
```
</details>
<details>
<summary><b>๐๏ธ Phase 2: Core Features (needs phase 1 stuff)</b></summary>
```python
# Claude's Tool Call:
create_task(
task_identifier="camera_recognition",
orchestration_group="calorie_counter",
execution_prompt="""
Task F: Camera Module Photo Capture โ [1]Install react-native-vision-camera, add iOS Info.plist camera usage description, Android manifest CAMERA permission, create /src/components/Camera/CameraView.tsx with useCameraDevices() hook โ [2]Implement capture: const photo = await camera.current.takePhoto({qualityPrioritization: 'balanced'}), resize with react-native-image-resizer to max 1024px maintaining aspect, convert to base64 โ [3]Add controls: TouchableOpacity capture button 70x70 center bottom, flash toggle iconButton top-left, flip camera icon top-right, show captured photo preview for 2s โ (Review: Photo captures and shows preview|Retest: Deny permission shows instructions|Failโ[1]) [Req: Task B]
Task G: Food Recognition AI Integration โ [1]Create /src/services/FoodRecognition.ts with recognizeFood(imageBase64) using Clarifai: stub.PostModelOutputs with model_id: 'food-item-recognition', filter outputs.data.concepts where value > 0.7 โ [2]Process response: map concepts to {name: string, confidence: number}, enrich each with nutrition from local DB: SELECT calories, protein FROM food_database WHERE name LIKE concept โ [3]Add caching: MD5 hash image, store results in AsyncStorage for 24h with key food_recognition_{hash}, check cache before API call โ (Review: Test burger.jpg returns 'burger' with confidence >0.7|Retest: Same image uses cache, no API call|Failโ[1]) [Req: Task F, Task G]
Task H: Nutrition Calculator Engine Service โ [1]Create /src/services/NutritionEngine.ts with calculateCalories(protein_g, carbs_g, fat_g): return protein*4 + carbs*4 + fat*9, calculateBMR(weight_kg, height_cm, age, isMale) using Mifflin-St Jeor โ [2]Add meal tracking: saveMeal(userId, foods[], mealType) inserts into meals table, then food_items for each food, updates daily_summaries with trigger โ [3]Create getDailySummary(userId, date) aggregating: SELECT SUM(calories), SUM(protein) FROM meals JOIN food_items WHERE DATE(logged_at) = date โ (Review: Calculate 25g protein, 30g carbs, 10g fat = 350 calories|Retest: Save meal and verify in daily summary|Failโ[2]) [Req: Task E]
""",
depends_on=["database_schema"],
model="opus"
)
# Claude's Tool Call:
create_task(
task_identifier="advanced_features",
orchestration_group="calorie_counter",
execution_prompt="""
Task J: Barcode Scanner Food Lookup โ [1]Install react-native-camera-kit for barcode scanning, create BarcodeScannerScreen with <CameraKitCameraScreen scanBarcode={true} onReadCode={(event) => handleBarcode(event.nativeEvent.codeStringValue)} /> โ [2]On scan: call OpenFoodFacts API, parse response.product.nutriments for calories_100g, proteins_100g, carbohydrates_100g, fat_100g, convert to per serving โ [3]If found: show product name, image_url, nutrition facts in modal with "Add to meal" button, if not found: prompt manual entry with barcode pre-filled โ (Review: Scan Coke barcode shows 42cal/100ml|Retest: Unknown barcode opens manual entry|Failโ[1]) [Req: Task F]
Task K: Manual Food Entry Search โ [1]Create SearchFoodScreen with TextInput, implement fuzzy search using Fuse.js on food_database with keys: ['name', 'brand'], threshold: 0.3, show results in FlatList โ [2]Each result item shows: food name, brand, calories per serving, (+) button to add, implement recent searches in AsyncStorage (last 10), show below search bar โ [3]Add filters: meal type (breakfast/lunch/dinner/snack), calorie range slider 0-1000, dietary tags (vegan, gluten-free), sort by: relevance/calories/name โ (Review: Search "chken" returns "chicken" results|Retest: Filter vegan excludes meat|Failโ[1]) [Req: Task E]
""",
depends_on=["camera_recognition"],
model="sonnet"
)
```
</details>
<details>
<summary><b>โจ Phase 3: User Experience (make it sexy)</b></summary>
```python
# Claude's Tool Call:
create_task(
task_identifier="core_screens",
orchestration_group="calorie_counter",
execution_prompt="""
Task M: Home Dashboard Screen UI โ [1]Create HomeScreen with header showing date picker (default today), circular progress ring using react-native-svg showing calories (current/goal) with animated fill on mount โ [2]Add macro bars: horizontal stacked bar with protein(red) carbs(blue) fat(yellow) showing grams and percentages, below add water tracker with 8 glasses icons filling on tap โ [3]Recent meals section: FlatList showing last 3 meals with thumbnail, name, calories, time ago using date-fns, swipe left to delete with confirmation โ (Review: Progress ring animates to 1200/2000 calories|Retest: Delete meal updates totals immediately|Failโ[1]) [Req: Task I]
Task N: History Calendar Food Diary โ [1]Create HistoryScreen with react-native-calendars Calendar component, mark dates with meals using markedDates prop: green=under goal, red=over goal, yellow=at goal โ [2]On date tap: show modal with that day's meals grouped by type (Breakfast/Lunch/Dinner/Snacks), each meal shows foods list, total calories, edit button โ [3]Add week view: ScrollView with 7 cards showing daily totals, mini macro pie chart using victory-native, tap to expand day details โ (Review: Calendar shows last 30 days colored correctly|Retest: Edit past meal updates that day's color|Failโ[2]) [Req: Task M]
""",
depends_on=["advanced_features"],
model="sonnet"
)
# Claude's Tool Call:
create_task(
task_identifier="meal_flow_screens",
orchestration_group="calorie_counter",
execution_prompt="""
Task P: Meal Detail Edit Screen โ [1]Create MealDetailScreen receiving meal from navigation, show hero image at top with parallax scroll effect, list recognized foods with confidence badges (green >80%, yellow >60%, red <60%) โ [2]Each food item: editable name TextInput, quantity with +/- buttons, unit dropdown, calories auto-updating based on quantity, swipe to delete, "Not right?" button to search alternatives โ [3]Bottom section: add more foods button opening search modal, nutrition totals updating real-time, save button with loading state, share button generating image with meal photo and macros โ (Review: Changing quantity from 100g to 150g updates calories by 1.5x|Retest: Delete item updates totals|Failโ[2]) [Req: Task H]
""",
depends_on=["core_screens"],
model="sonnet"
)
```
</details>
<details>
<summary><b>๐ Phase 4: Ship It (final boss)</b></summary>
```python
# Claude's Tool Call:
create_task(
task_identifier="testing_suite",
orchestration_group="calorie_counter",
execution_prompt="""
Task S: Unit Integration Test Suite โ [1]Setup Jest with React Native Testing Library, create __tests__ folders, write unit tests: NutritionEngine.test.ts testing calculateCalories(25,30,10)===350, macro validation, BMR calculation โ [2]Integration tests: photo-to-meal flow mocking camera and API, test saves correctly to DB, offline queue when no network, sync when reconnected โ [3]Component tests: render all screens without crashing, test navigation between tabs, Redux actions update store correctly, AsyncStorage persists โ (Review: All tests pass with >70% coverage|Retest: Run on CI, all green|Failโ[1]) [Req: Task R]
""",
depends_on=["meal_flow_screens"],
model="sonnet"
)
# Claude's Tool Call:
create_task(
task_identifier="production_deploy",
orchestration_group="calorie_counter",
execution_prompt="""
Task V: Security Privacy Compliance Setup โ [1]Implement API key encryption using react-native-keychain, add certificate pinning for API calls, obfuscate sensitive strings with react-native-obfuscating-transformer โ [2]Privacy: add GDPR consent screen for EU users, data deletion option in settings, export user data as JSON, analytics opt-out toggle, clear privacy policy link โ [3]Security audit: no hardcoded secrets in code, all user data encrypted at rest, HTTPS only, SQL injection prevention with parameterized queries, input validation on all forms โ (Review: Security scanner finds no vulnerabilities|Retest: Man-in-middle attack fails|Failโ[1]) [Req: Task U
Task W: Production Build Release Prep โ [1]iOS: generate certificates in Apple Developer, configure Xcode with provisioning profiles, set bundle ID com.snapcalories.app, archive and validate with App Store Connect โ [2]Android: generate signed keystore, configure gradle with release signing, enable minification and R8, build AAB format for Play Store, test on multiple devices โ [3]Create store listings: write descriptions emphasizing AI food recognition, take 5 screenshots per platform, app icon 1024x1024, privacy policy URL, age rating 4+ โ (Review: Both builds install and run on real devices|Retest: Upload to TestFlight/Internal testing works|Failโ[2]) [Req: Task V]
""",
depends_on=["testing_suite"],
model="opus"
)
# Claude's Tool Call:
create_task(
task_identifier="launch_features",
orchestration_group="calorie_counter",
execution_prompt="""
Task Y: Beta Testing Feedback Loop โ [1]Setup TestFlight for 100 iOS beta testers, Google Play Internal Testing for Android, create feedback form in-app with screenshot capability, discord/slack community for testers โ [2]Track metrics: daily active users, meal logging rate, photo vs manual entry ratio, feature usage heatmap, crash reports, average session time, user retention day 1/7/30 โ [3]Iterate based on feedback: fix top 3 crashes, improve food recognition accuracy on reported failures, add most requested foods to database, optimize slow screens โ (Review: 50+ beta testers active, <0.5% crash rate|Retest: User feedback form submits successfully|Failโ[1]) [Req: Task X]
""",
depends_on=["production_deploy", "launch_features"],
model="sonnet"
)
```
</details>
## claude hits go (`submit_orchestration`):
> [!TIP]
> "locked and loaded. spinning up the `calorie_counter` squad. grab a coffee, this is gonna be lit."
```python
submit_orchestration(orchestration_group="calorie_counter")
```
**boom:** claude just architected your entire app while you were doom-scrolling twitter. 11 parallel claude instances working in perfect harmony. `claude-cto` handles all the dependency management and handoffs automagically.
**endgame:** production-ready app with AI food recognition, butter-smooth UI, offline support, and 85% test coverage. shipped before lunch. ๐
---
## ๐ป your mission control: the cli dashboard
while your AI cto's running the show, the CLI is your ops center - monitor progress, debug issues, or drop manual tasks like a boss.
<p align="center">
<img src="https://i.imgur.com/your-cli-in-action.gif" alt="claude cto cli go brrr">
</p>
### real-time ops: how you'd run this circus
<details>
<summary><b>๐ฎ CLI Commands Cheat Sheet</b></summary>
say your ai just launched that "ecommerce_modernization" plan. here's how you stay in the loop.
**step 1: get the big picture ๐บ๏ธ**
first, scope out what plans are cooking:
```bash
$ claude-cto list-orchestrations
id status tasks completed failed created
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1 running 5 2 0 2025-08-21T10:30:00
```
> "cool, plan #1's live with 2/5 tasks already crushed."
**step 2: watch the magic happen ๐ฟ**
peek behind the curtain with live updates:
```bash
$ claude-cto orchestration-status 1 --watch
```
now your terminal's a live feed showing tasks flipping from `waiting` โ `running` โ `completed`.
**step 3: stalk a specific worker ๐**
payments refactor taking too long? let's investigate:
```bash
$ claude-cto list
id status last action logs
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1 completed wrote security report task_1_...
2 completed wrote perf report task_2_...
3 running editing auth/session.js task_3_...
4 running analyzing stripe_api.py task_4_...
5 waiting - task_5_...
```
now tail the payments worker (id 4):
```bash
# get the tl;dr
$ tail -f ~/.claude-cto/tasks/task_4_*_summary.log
# or go full detective mode
$ less ~/.claude-cto/tasks/task_4_*_detailed.log
```
**step 4: drop ad-hoc tasks ๐น๏ธ**
forgot something? no sweat - add tasks on the fly:
```bash
# fire-and-forget
$ claude-cto run "slap a 'modernization in progress' banner in readme.md"
# watch it live
$ claude-cto run "whip up a db seed script" --watch
```
**step 5: launch pre-cooked workflows**
got a json blueprint? be the cto:
```bash
# deploy a full ci/cd pipeline
$ claude-cto orchestrate cicd-pipeline.json --wait
```
pro tip: mix these commands like a devops bartender. your ai team's always on call. ๐ธ
</details>
---
## ๐ฆ get cooking in 60 seconds
### 1. prep work
- **python** (v3.10+) & **node.js** (v16+)
- **claude code sdk**: `npm install -g @anthropic-ai/claude-code`
- **auth**: just `claude auth login` - no api key circus
### 2. installation options
> I've laid out a bunch of options here. Honestly, if you're on a Mac, installing it with `brew` is probably the easiest and best way to go. If not, just use `pip` โ it'll handle everything, including the CLI's `/bin` setup. Docker, I'd say, should be your very last choice. And just so you know, Smithery won't help for installing the full service (CLI, server, etc.) โ it's just for quickly setting up the MCP integration with Claude Desktop.
<div align="center">
<table>
<tr>
<th width="25%">Method</th>
<th width="40%">Command</th>
<th width="35%">Best For</th>
</tr>
<tr>
<td align="center"><b>๐บ Homebrew</b><br/><sub>macOS/Linux</sub></td>
<td><code>brew install yigitkonur/claude-cto/claude-cto</code></td>
<td>One-command install</td>
</tr>
<tr>
<td align="center"><b>โจ Smithery</b><br/><sub>MCP only</sub></td>
<td><code>npx -y @smithery/cli install @yigitkonur/claude-cto</code></td>
<td>Claude Desktop/VSCode users</td>
</tr>
<tr>
<td align="center"><b>๐ Full Monty</b></td>
<td><code>pip install "claude-cto[full]"</code></td>
<td>CLI + API + MCP combo</td>
</tr>
<tr>
<td align="center"><b>๐ง MCP Only</b></td>
<td><code>pip install "claude-cto[mcp]"</code></td>
<td>Just the Claude sauce</td>
</tr>
<tr>
<td align="center"><b>๐ฅ๏ธ CLI/Server</b></td>
<td><code>pip install "claude-cto[server]"</code></td>
<td>Terminal power user</td>
</tr>
<tr>
<td align="center"><b>๐ณ Docker</b></td>
<td><code>docker run yigitkonur35/claude-cto</code></td>
<td>Zero dependencies</td>
</tr>
</table>
</div>
### 3. claude config (pip users only)
> [!IMPORTANT]
> If you went the pip route, wire up claude and fully restart claude desktop/vscode after this:
```bash
claude mcp add claude-cto -s user -- python -m claude_cto.mcp.factory
```
---
## ๐ ๏ธ rest api: your integration playground
the real magic happens through a slick local rest api - hook it into anything from ci/cd to custom tooling. this can be a thing where you can manage your claude code execution remotely, just built on top of this API.
<details>
<summary><b>๐ Python ETL Pipeline Example</b></summary>
```python
import httpx, time, json
SERVER = "http://localhost:8000"
# 1. define the whole shebang
etl_blueprint = {
"tasks": [
{"id": "grab_sales", "prompt": "yoink sales data from postgres"},
{"id": "snag_inventory", "prompt": "pull inventory from mongodb"},
{
"id": "transform",
"prompt": "cleanup & merge datasets",
"needs": ["grab_sales", "snag_inventory"],
"delay": 2.0 # chill for 2 secs
},
{"id": "dump_to_warehouse", "prompt": "shove clean data into snowflake", "needs": ["transform"]},
]
}
# 2. fire it off
print("๐ launching etl pipeline...")
r = httpx.post(f"{SERVER}/api/v1/orchestrations", json=etl_blueprint)
orch_id = r.json()["orchestration_id"]
print(f"โ
pipeline #{orch_id} live!")
# 3. watch like a hawk
while True:
status = httpx.get(f"{SERVER}/api/v1/orchestrations/{orch_id}").json()
print(f"status: {status['status']} | progress: {status['completed_tasks']}/{status['total_tasks']}")
if status['status'] in ["done", "failed", "cancelled"]:
print("\n๐ all done! final report:")
print(json.dumps(status, indent=2))
break
time.sleep(5) # don't spam the api
```
this api's your golden ticket - automate all the things without touching the cli. ๐ค
</details>
---
## โจ feature breakdown: the tech sauce
<div align="center">
| Feature | What it does | Why you care |
| :---: | :--- | :--- |
| **๐ Parallel**<br/>`10x speed` | Runs multiple AI agents simultaneously | 10 tasks finish in 5 mins, not 50 |
| **๐ Dependencies**<br/>`DAG support` | Handles task dependencies automatically | Complex workflows just work |
| **๐ Auto-retries**<br/>`exponential backoff` | Smart retries with circuit breakers | No manual restarts for flaky wifi |
| **๐ง Model picker**<br/>`opus/sonnet/haiku` | Assign models per task complexity | Save $$$ using heavy models wisely |
| **๐ Full logs**<br/>`summary + detailed` | Two-tier logging for every task | Debug like a pro with context |
| **๐ Resource guard**<br/>`CPU/memory/disk` | Monitors system resources | Prevents machine meltdown |
| **๐พ Crash-proof**<br/>`disk persistence` | Everything saved to SQLite | Power outage? Pick up where you left |
| **๐ก๏ธ Circuit breaker**<br/>`failure protection` | Stops retrying broken components | No infinite failure loops |
</div>
---
## ๐ข deployment options
<details>
<summary><b>๐ณ Docker (set it & forget it)</b></summary>
```bash
# quick start with docker
# an api key isn't required, but you must manually run claude and complete auth.
# use `brew` or `pip install` for an easier setup.
docker run -d \
--name claude-cto \
-p 8000:8000 \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
yigitkonur35/claude-cto:latest
# or run CLI commands directly
docker run --rm \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
yigitkonur35/claude-cto run "analyze this codebase"
# or use docker-compose for full setup
docker-compose up -d
```
for detailed docker setup, multi-arch builds, and advanced configs, check out [DOCKER.md](./DOCKER.md).
### docker-compose snippet
drop this in `docker-compose.yml`:
```yaml
version: '3.8'
services:
claude-cto:
image: yigitkonur35/claude-cto:latest
ports:
- "8000:8000"
environment:
- ANTHROPIC_API_KEY=${API_KEY}
volumes:
- ./claude_data:/root/.claude-cto # keeps your data safe
restart: unless-stopped
```
fire it up: `docker-compose up -d`
</details>
<details>
<summary><b>๐ง Systemd (for linux servers)</b></summary>
1. create `/etc/systemd/system/claude-cto.service`
2. paste config (ask your friendly neighborhood sysadmin)
3. run: `sudo systemctl enable --now claude-cto`
</details>
---
## ๐ง config & fixes
<details>
<summary><b>โ๏ธ Environment Variables</b></summary>
| variable | purpose | default |
| :--- | :--- | :--- |
| `ANTHROPIC_API_KEY` | your claude api key | **no need for claude max sub users** - optional for key-based usage |
| `CLAUDE_CTO_SERVER_URL` | where the cli connects | `http://localhost:8000` |
| `CLAUDE_CTO_DB` | task database location | `~/.claude-cto/tasks.db` |
| `CLAUDE_CTO_ENABLE_SOUNDS` | ping when tasks complete | `true` |
| `CLAUDE_CTO_MODE` | `standalone` or `proxy` | `auto` |
</details>
<details>
<summary><b>๐ฅ Common Issues Quickfix</b></summary>
| problem | solution |
| :--- | :--- |
| **tasks stuck** | run `claude --version` to check auth |
| **database locked** | `pkill -f claude-cto && rm ~/.claude-cto/tasks.db-journal` |
| **port 8000 taken** | `lsof -i :8000` or let it auto-find ports |
| **permission denied** | `sudo chown -R $(whoami) ~/.claude-cto` |
</details>
---
<div align="center">
**Built with ๐ฅ by devs who got tired of watching AI work sequentially**
</div>
Raw data
{
"_id": null,
"home_page": null,
"name": "claude-cto",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "claude, ai, automation, task-queue, cli, mcp, anthropic",
"author": "Yigit Konur",
"author_email": "yigit@thinkbuddy.ai",
"download_url": "https://files.pythonhosted.org/packages/c4/f1/c65ded51edf007c45bac061eb52620d516589c361aa0595794d1515a0b2a/claude_cto-0.6.2.tar.gz",
"platform": null,
"description": "<h3 align=\"center\">claude-cto \ud83d\uddff your ai coding agents' cto that gets shit done 10x faster</h3>\n\n<p align=\"center\">\n <strong>\n <em>your AI squad on crack: tasks run in parallel, smart waits handle dependent tasks, workflows fly on autopilot. ship code at ludicrous speed while making the vibe coding more enjoyable</em>\n </strong>\n\n > wanna get some sleep but still not used your Opus limit? just queue more tasks before the 5 AM reset \ud83d\udc09\n</p>\n\n<p align=\"center\">\n <!-- Package Info -->\n <a href=\"#\"><img alt=\"pypi\" src=\"https://img.shields.io/pypi/v/claude-cto.svg?style=flat-square&color=4D87E6\"></a>\n <a href=\"#\"><img alt=\"python\" src=\"https://img.shields.io/badge/python-3.10+-4D87E6.svg?style=flat-square\"></a>\n \u2022 \n <!-- Features -->\n <a href=\"#\"><img alt=\"license\" src=\"https://img.shields.io/badge/License-MIT-F9A825.svg?style=flat-square\"></a> \n <a href=\"#\"><img alt=\"mcp compatible\" src=\"https://img.shields.io/badge/MCP-Compatible-2ED573.svg?style=flat-square\"></a>\n</p>\n\n<p align=\"center\">\n <img alt=\"no api key needed\" src=\"https://img.shields.io/badge/\u2705_no_api_key_needed-uses_your_claude_sub-2ED573.svg?style=for-the-badge\">\n <img alt=\"zero config\" src=\"https://img.shields.io/badge/\u2699\ufe0f_zero_config-plug_&_play-2ED573.svg?style=for-the-badge\">\n</p>\n\n<div align=\"center\">\n \n### \ud83e\udded Quick Navigation\n\n[**\u26a1 Get Started**](#-get-cooking-in-60-seconds) \u2022 \n[**\ud83c\udfaf Real Example**](#-real-case-building-a-calorie-counter-in-minutes-wclaude-cto) \u2022 \n[**\ud83d\udcbb CLI Dashboard**](#-your-mission-control-the-cli-dashboard) \u2022 \n[**\ud83d\udee0\ufe0f REST API**](#\ufe0f-rest-api-your-integration-playground) \u2022 \n[**\ud83d\udc33 Docker**](#-deployment-options) \u2022\n[**\u2728 Features**](#-feature-breakdown-the-tech-sauce)\n\n</div>\n\n---\n\n**`claude-cto`** is your AI dream team on steroids. stop doing that one-task-at-a-time workflow \u2014 now you've got a whole squad of ai devs (opus for the heavy stuff, sonnet for mid-tier, haiku for the easy wins) cracking code simultaneously while you sip your coffee \u2615\n\n<div align=\"center\">\n<table>\n<tr>\n<td align=\"center\">\n<h3>\u26a1</h3>\n<b>10x Faster</b><br/>\n<sub>Parallel execution</sub>\n</td>\n<td align=\"center\">\n<h3>\ud83e\udde0</h3>\n<b>Smart AF</b><br/>\n<sub>Dependency resolution</sub>\n</td>\n<td align=\"center\">\n<h3>\ud83d\udd25</h3>\n<b>Never Fails</b><br/>\n<sub>Auto-retries & circuit breakers</sub>\n</td>\n</tr>\n</table>\n</div>\n\nhow it slaps: \n- you're the big-picture boss \n- claude-cto handles the boring pm work \n- subtle notifications keep you in the loop without killing your vibe \n\n---\n\n## \ud83d\udca5 why claude-cto claps traditional workflows \n\nwe've hacked the claude code sdk with that spicy `--dangerously-skip-permissions` flag to make your ai go brrrrr: \n1. cooks up a bulletproof game plan \n2. delegates like a machine \n3. handles task dependencies so smooth you'll think it's cheating \n\n<details open>\n<summary><b>\u26a1 Performance Comparison: See the Difference</b></summary>\n\n### claude-cto: advantage of parallel execution\n\n```mermaid\ngraph LR\n Start[\ud83c\udfaf kickoff]:::start\n \n subgraph SG1[\"STAGE 1<br/>\u23f0 4m (auth_system)\"]\n S1A[setup_database<br/>3m]:::stage1\n S1B[auth_system<br/>4m]:::stage1\n end\n \n subgraph SG2[\"STAGE 2<br/>\u23f0 5m (api_endpoints)\"]\n S2A[api_endpoints<br/>5m]:::stage2\n S2B[payment_integration<br/>3m]:::stage2\n S2C[frontend_app<br/>4m]:::stage2\n end\n \n subgraph SG3[\"STAGE 3<br/>\u23f0 2m (deploy_production)\"]\n S3A[deploy_production<br/>2m]:::stage3\n end\n \n Final[\ud83c\udf89 launched]:::final\n Total[\u23f1\ufe0f 11m total<br/>4m + 5m + 2m]:::timeFast\n \n Start ==> S1A\n Start ==> S1B\n S1A ==> S2A\n S1B ==> S2A\n S1A ==> S2B\n S1B ==> S2B\n S1A ==> S2C\n S1B ==> S2C\n S2A ==> S3A\n S2B ==> S3A\n S2C ==> S3A\n S3A ==> Final\n \n classDef start fill:#7950f2,stroke:#6741d9,stroke-width:3px,color:#fff\n classDef stage1 fill:#ffd43b,stroke:#fab005,stroke-width:2px,color:#000\n classDef stage2 fill:#4dabf7,stroke:#339af0,stroke-width:2px,color:#fff\n classDef stage3 fill:#51cf66,stroke:#2f9e44,stroke-width:2px,color:#fff\n classDef final fill:#ff6b6b,stroke:#f03e3e,stroke-width:3px,color:#fff\n classDef timeFast fill:#20c997,stroke:#12b886,stroke-width:2px,color:#fff\n \n linkStyle default stroke:#51cf66,stroke-width:3px\n```\n\n### classic claude code approach: sequential execution\n\n```mermaid\ngraph LR\n Start[\ud83c\udfaf kickoff]:::start\n S1[setup_database<br/>3m]:::stage1\n S2[auth_system<br/>4m]:::stage1\n S3[api_endpoints<br/>5m]:::stage2\n S4[payment_integration<br/>3m]:::stage2\n S5[frontend_app<br/>4m]:::stage2\n S6[deploy_production<br/>2m]:::stage3\n Final[\ud83c\udf89 launched]:::final\n \n Start ==> S1 ==> S2 ==> S3 ==> S4 ==> S5 ==> S6 ==> Final\n \n Total[\u23f1\ufe0f 21m total<br/>Sequential execution]:::timeSlow\n \n classDef start fill:#7950f2,stroke:#6741d9,stroke-width:3px,color:#fff\n classDef stage1 fill:#ffd43b,stroke:#fab005,stroke-width:2px,color:#000\n classDef stage2 fill:#4dabf7,stroke:#339af0,stroke-width:2px,color:#fff\n classDef stage3 fill:#51cf66,stroke:#2f9e44,stroke-width:2px,color:#fff\n classDef final fill:#ff6b6b,stroke:#f03e3e,stroke-width:3px,color:#fff\n classDef timeSlow fill:#ffa94d,stroke:#fd7e14,stroke-width:2px,color:#000\n \n linkStyle default stroke:#51cf66,stroke-width:3px\n```\n\n</details>\n\n<table align=\"center\">\n<tr>\n<td align=\"center\"><b>\u274c Old Way</b><br/><sub>Sequential = Slow</sub></td>\n<td align=\"center\"><b>\u2705 With claude-cto</b><br/><sub>Parallel = Fast AF</sub></td>\n</tr>\n<tr>\n<td>\n\n```\n21 minutes of pain\ntask1 \u2192 task2 \u2192 task3 \u2192 task4\n```\n\n</td>\n<td>\n\n```\n11 minutes of glory\ntask1 \u27f6\ntask2 \u27f6 } \u2192 task4\ntask3 \u27f6\n```\n\n</td>\n</tr>\n</table>\n\n---\n\n## \ud83e\udde0 let your AI be the CTO - the real power move\n\nthis is where shit gets wild. instead of micromanaging like some middle manager, you let claude wear the cto hat. drop a high-level goal and watch it use `claude-cto`'s toolkit to plan, delegate, and execute like a boss.\n\n### the mcp tool belt \ud83e\uddf0\n\n<details>\n<summary><b>\ud83d\udcda Available MCP Tools (click to expand)</b></summary>\n\nonce installed, claude gets these shiny new toys to whip your ai team into shape:\n\n| tool | what it does |\n| :---: | :--- |\n| **`create_task`**<br/>\ud83d\ude80 | **delegate like a pro**: assigns jobs to ai workers with optional dependencies |\n| **`submit_orchestration`**<br/>\ud83c\udfc1 | **the big red button**: launches entire task groups in one go |\n| **`get_task_status`**<br/>\ud83d\udcca | **spy mode**: checks up on a single worker's progress |\n| **`list_tasks`**<br/>\ud83d\udccb | **mission control**: shows what the whole squad's cooking |\n| **`check_api_health`**<br/>\u2764\ufe0f | **pulse check**: makes sure the engine's purring |\n\n</details>\n\n---\n\n# \ud83d\udcf8 real case: building a calorie counter in minutes w/claude-cto\n\nwatch how claude architects a photo-to-calories app like a 10x engineer on red bull.\n\n## you drop the mic:\n> \"yo, need a mobile app that identifies food from photos and tracks calories. full AI integration, slick UI, the works. make it happen.\"\n\n## claude's game plan (internal monologue):\n\n<details>\n<summary><b>\ud83e\udde0 Claude's Master Plan (click to see the strategy)</b></summary>\n\n> \"aight bet. this is a classic waterfall-but-make-it-parallel situation:\n>\n> 1. **phase 1 (laying groundwork)**: app scaffold + database + AI research all go brrr at once\n> 2. **phase 2 (the magic)**: camera + food recognition + nutrition math run parallel where deps allow\n> 3. **phase 3 (make it pretty)**: UI + manual entry + analytics dashboard spawn when ready\n> 4. **phase 4 (ship it)**: tests then optimization - can't polish what ain't built\n>\n> tagging this whole circus as `calorie_counter` crew.\"\n\n```mermaid\ngraph TD\n subgraph \"\ud83c\udf31 Phase 1: Foundation (parallel)\"\n A[\ud83d\udcf1 setup_mobile_app]:::phase1\n B[\ud83d\uddc4\ufe0f design_database]:::phase1\n C[\ud83d\udd0d research_ai_apis]:::phase1\n end\n subgraph \"\ud83c\udfd7\ufe0f Phase 2: Core Features (parallel)\"\n D[\ud83d\udcf7 camera_module]:::phase2\n E[\ud83e\udd16 food_recognition]:::phase2\n F[\ud83e\uddee nutrition_engine]:::phase2\n end\n subgraph \"\u2728 Phase 3: User Experience (parallel)\"\n G[\ud83c\udfa8 ui_screens]:::phase3\n H[\u270f\ufe0f manual_entry]:::phase3\n I[\ud83d\udcca analytics_dashboard]:::phase3\n end\n subgraph \"\ud83d\ude80 Phase 4: Launch Ready\"\n J[\ud83e\uddea testing_suite]:::phase4\n K[\u26a1 app_optimization]:::phase4\n end\n A --> D\n A --> G\n B --> F\n B --> I\n C --> E\n D --> E\n E --> F\n F --> G\n F --> H\n G --> J\n H --> J\n I --> J\n J --> K\n classDef phase1 fill:#FF6B6B,stroke:#C92A2A,color:#fff\n classDef phase2 fill:#4ECDC4,stroke:#15AAA0,color:#fff\n classDef phase3 fill:#45B7D1,stroke:#2196F3,color:#fff\n classDef phase4 fill:#96CEB4,stroke:#4CAF50,color:#fff\n```\n\n</details>\n\n## claude starts delegating (`create_task` calls):\n\n<details>\n<summary><b>\ud83d\udcf1 Phase 1: Foundation Setup (parallel ops)</b></summary>\n\n```python\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"foundation_setup\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task A: React Native TypeScript Initialize \u2192 [1]Run npx react-native init SnapCalories --template react-native-template-typescript, create /src with subdirs: /screens, /components, /services, /db, /utils, /store, /navigation, /types \u2192 [2]Install core: yarn add @react-navigation/native @react-navigation/bottom-tabs @reduxjs/toolkit react-redux redux-persist @react-native-async-storage/async-storage react-native-screens react-native-safe-area-context \u2192 [3]Configure tsconfig.json with \"strict\": true, paths: {\"@screens/*\": [\"src/screens/*\"], \"@components/*\": [\"src/components/*\"]}, setup .prettierrc with singleQuote, no semicolons \u2192 (Review: yarn start launches Metro, TypeScript compiles without errors|Retest: Import @screens/Home works|Fail\u2192[2])\n Task B: Navigation Redux Store Setup \u2192 [1]Create /src/navigation/AppNavigator.tsx with createBottomTabNavigator containing 5 tabs: HomeScreen, SearchScreen, CameraScreen, HistoryScreen, ProfileScreen with icons from react-native-vector-icons/Ionicons \u2192 [2]Setup Redux in /src/store/index.ts: configureStore with userSlice (name, goals, preferences), mealsSlice (recent, favorites), persistConfig whitelist: ['user', 'preferences'] \u2192 [3]Wrap App.tsx with Provider and PersistGate, create placeholder screens that display their name, verify tab navigation works \u2192 (Review: All 5 tabs navigate correctly, Redux DevTools shows state|Retest: Kill app, reopen, user preferences persist|Fail\u2192[2]) [Req: Task A]\n \"\"\",\n model=\"sonnet\"\n)\n\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"database_schema\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task C: SQLite Database Schema Implementation \u2192 [1]Install react-native-sqlite-storage, create /src/db/schema.ts with tables: users(id TEXT PRIMARY KEY, email TEXT UNIQUE, goals_json TEXT, created_at INTEGER), meals(id TEXT, user_id TEXT, type TEXT, logged_at INTEGER, total_calories REAL, photo_path TEXT) \u2192 [2]Add food_items(id TEXT, meal_id TEXT, name TEXT, quantity REAL, unit TEXT, calories REAL, protein REAL, carbs REAL, fat REAL), food_database(id TEXT, name TEXT, brand TEXT, barcode TEXT UNIQUE, calories REAL, protein REAL, carbs REAL, fat REAL) \u2192 [3]Create DatabaseService class with init(), executeSql(), methods for createTables(), dropTables(), verify tables exist with SELECT name FROM sqlite_master \u2192 (Review: All 4 tables created successfully|Retest: Insert and retrieve test meal|Fail\u2192[1]) [Req: Task A]\n Task D: Database Seed Indexes Migrations \u2192 [1]Create /src/db/seeds/foods.json with 5000 USDA foods: each having name, calories, protein, carbs, fat, serving_size, import with transaction INSERT OR IGNORE \u2192 [2]Add indexes: CREATE INDEX idx_meals_date ON meals(user_id, logged_at DESC); CREATE INDEX idx_food_name ON food_database(name); CREATE INDEX idx_barcode ON food_database(barcode) \u2192 [3]Implement migration system: migrations table tracking version, up/down functions, test by adding test column then rolling back \u2192 (Review: SELECT * FROM food_database WHERE name LIKE '%chicken%' returns in <50ms|Retest: 1000 meal inserts complete <2s|Fail\u2192[2]) [Req: Task C]\n Task E: API Keys Service Configuration \u2192 [1]Setup Clarifai: create account at clarifai.com, get API key, install @clarifai/nodejs-grpc, create /src/services/ClarifaiService.ts with class containing apiKey from env \u2192 [2]Setup OpenFoodFacts: no key needed, install node-fetch, create /src/services/BarcodeService.ts with lookupBarcode(code) method calling https://world.openfoodfacts.org/api/v0/product/{code}.json \u2192 [3]Create unified FoodAPIService that wraps both, with methods recognizeImage(base64) and scanBarcode(code), add mock mode for testing without API calls \u2192 (Review: Mock mode returns fake data, API mode requires keys|Retest: Invalid API key throws clear error|Fail\u2192[1]) [Req: Task D]\n \"\"\",\n depends_on=[\"foundation_setup\"],\n model=\"sonnet\"\n)\n```\n\n</details>\n\n<details>\n<summary><b>\ud83c\udfd7\ufe0f Phase 2: Core Features (needs phase 1 stuff)</b></summary>\n\n```python\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"camera_recognition\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task F: Camera Module Photo Capture \u2192 [1]Install react-native-vision-camera, add iOS Info.plist camera usage description, Android manifest CAMERA permission, create /src/components/Camera/CameraView.tsx with useCameraDevices() hook \u2192 [2]Implement capture: const photo = await camera.current.takePhoto({qualityPrioritization: 'balanced'}), resize with react-native-image-resizer to max 1024px maintaining aspect, convert to base64 \u2192 [3]Add controls: TouchableOpacity capture button 70x70 center bottom, flash toggle iconButton top-left, flip camera icon top-right, show captured photo preview for 2s \u2192 (Review: Photo captures and shows preview|Retest: Deny permission shows instructions|Fail\u2192[1]) [Req: Task B]\n Task G: Food Recognition AI Integration \u2192 [1]Create /src/services/FoodRecognition.ts with recognizeFood(imageBase64) using Clarifai: stub.PostModelOutputs with model_id: 'food-item-recognition', filter outputs.data.concepts where value > 0.7 \u2192 [2]Process response: map concepts to {name: string, confidence: number}, enrich each with nutrition from local DB: SELECT calories, protein FROM food_database WHERE name LIKE concept \u2192 [3]Add caching: MD5 hash image, store results in AsyncStorage for 24h with key food_recognition_{hash}, check cache before API call \u2192 (Review: Test burger.jpg returns 'burger' with confidence >0.7|Retest: Same image uses cache, no API call|Fail\u2192[1]) [Req: Task F, Task G]\n Task H: Nutrition Calculator Engine Service \u2192 [1]Create /src/services/NutritionEngine.ts with calculateCalories(protein_g, carbs_g, fat_g): return protein*4 + carbs*4 + fat*9, calculateBMR(weight_kg, height_cm, age, isMale) using Mifflin-St Jeor \u2192 [2]Add meal tracking: saveMeal(userId, foods[], mealType) inserts into meals table, then food_items for each food, updates daily_summaries with trigger \u2192 [3]Create getDailySummary(userId, date) aggregating: SELECT SUM(calories), SUM(protein) FROM meals JOIN food_items WHERE DATE(logged_at) = date \u2192 (Review: Calculate 25g protein, 30g carbs, 10g fat = 350 calories|Retest: Save meal and verify in daily summary|Fail\u2192[2]) [Req: Task E]\n \"\"\",\n depends_on=[\"database_schema\"],\n model=\"opus\"\n)\n\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"advanced_features\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task J: Barcode Scanner Food Lookup \u2192 [1]Install react-native-camera-kit for barcode scanning, create BarcodeScannerScreen with <CameraKitCameraScreen scanBarcode={true} onReadCode={(event) => handleBarcode(event.nativeEvent.codeStringValue)} /> \u2192 [2]On scan: call OpenFoodFacts API, parse response.product.nutriments for calories_100g, proteins_100g, carbohydrates_100g, fat_100g, convert to per serving \u2192 [3]If found: show product name, image_url, nutrition facts in modal with \"Add to meal\" button, if not found: prompt manual entry with barcode pre-filled \u2192 (Review: Scan Coke barcode shows 42cal/100ml|Retest: Unknown barcode opens manual entry|Fail\u2192[1]) [Req: Task F]\n Task K: Manual Food Entry Search \u2192 [1]Create SearchFoodScreen with TextInput, implement fuzzy search using Fuse.js on food_database with keys: ['name', 'brand'], threshold: 0.3, show results in FlatList \u2192 [2]Each result item shows: food name, brand, calories per serving, (+) button to add, implement recent searches in AsyncStorage (last 10), show below search bar \u2192 [3]Add filters: meal type (breakfast/lunch/dinner/snack), calorie range slider 0-1000, dietary tags (vegan, gluten-free), sort by: relevance/calories/name \u2192 (Review: Search \"chken\" returns \"chicken\" results|Retest: Filter vegan excludes meat|Fail\u2192[1]) [Req: Task E]\n \"\"\",\n depends_on=[\"camera_recognition\"],\n model=\"sonnet\"\n)\n```\n\n</details>\n\n<details>\n<summary><b>\u2728 Phase 3: User Experience (make it sexy)</b></summary>\n\n```python\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"core_screens\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task M: Home Dashboard Screen UI \u2192 [1]Create HomeScreen with header showing date picker (default today), circular progress ring using react-native-svg showing calories (current/goal) with animated fill on mount \u2192 [2]Add macro bars: horizontal stacked bar with protein(red) carbs(blue) fat(yellow) showing grams and percentages, below add water tracker with 8 glasses icons filling on tap \u2192 [3]Recent meals section: FlatList showing last 3 meals with thumbnail, name, calories, time ago using date-fns, swipe left to delete with confirmation \u2192 (Review: Progress ring animates to 1200/2000 calories|Retest: Delete meal updates totals immediately|Fail\u2192[1]) [Req: Task I]\n Task N: History Calendar Food Diary \u2192 [1]Create HistoryScreen with react-native-calendars Calendar component, mark dates with meals using markedDates prop: green=under goal, red=over goal, yellow=at goal \u2192 [2]On date tap: show modal with that day's meals grouped by type (Breakfast/Lunch/Dinner/Snacks), each meal shows foods list, total calories, edit button \u2192 [3]Add week view: ScrollView with 7 cards showing daily totals, mini macro pie chart using victory-native, tap to expand day details \u2192 (Review: Calendar shows last 30 days colored correctly|Retest: Edit past meal updates that day's color|Fail\u2192[2]) [Req: Task M]\n \"\"\",\n depends_on=[\"advanced_features\"],\n model=\"sonnet\"\n)\n\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"meal_flow_screens\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task P: Meal Detail Edit Screen \u2192 [1]Create MealDetailScreen receiving meal from navigation, show hero image at top with parallax scroll effect, list recognized foods with confidence badges (green >80%, yellow >60%, red <60%) \u2192 [2]Each food item: editable name TextInput, quantity with +/- buttons, unit dropdown, calories auto-updating based on quantity, swipe to delete, \"Not right?\" button to search alternatives \u2192 [3]Bottom section: add more foods button opening search modal, nutrition totals updating real-time, save button with loading state, share button generating image with meal photo and macros \u2192 (Review: Changing quantity from 100g to 150g updates calories by 1.5x|Retest: Delete item updates totals|Fail\u2192[2]) [Req: Task H]\n \"\"\",\n depends_on=[\"core_screens\"],\n model=\"sonnet\"\n)\n```\n\n</details>\n\n<details>\n<summary><b>\ud83d\ude80 Phase 4: Ship It (final boss)</b></summary>\n\n```python\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"testing_suite\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task S: Unit Integration Test Suite \u2192 [1]Setup Jest with React Native Testing Library, create __tests__ folders, write unit tests: NutritionEngine.test.ts testing calculateCalories(25,30,10)===350, macro validation, BMR calculation \u2192 [2]Integration tests: photo-to-meal flow mocking camera and API, test saves correctly to DB, offline queue when no network, sync when reconnected \u2192 [3]Component tests: render all screens without crashing, test navigation between tabs, Redux actions update store correctly, AsyncStorage persists \u2192 (Review: All tests pass with >70% coverage|Retest: Run on CI, all green|Fail\u2192[1]) [Req: Task R]\n \"\"\",\n depends_on=[\"meal_flow_screens\"],\n model=\"sonnet\"\n)\n\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"production_deploy\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task V: Security Privacy Compliance Setup \u2192 [1]Implement API key encryption using react-native-keychain, add certificate pinning for API calls, obfuscate sensitive strings with react-native-obfuscating-transformer \u2192 [2]Privacy: add GDPR consent screen for EU users, data deletion option in settings, export user data as JSON, analytics opt-out toggle, clear privacy policy link \u2192 [3]Security audit: no hardcoded secrets in code, all user data encrypted at rest, HTTPS only, SQL injection prevention with parameterized queries, input validation on all forms \u2192 (Review: Security scanner finds no vulnerabilities|Retest: Man-in-middle attack fails|Fail\u2192[1]) [Req: Task U\n Task W: Production Build Release Prep \u2192 [1]iOS: generate certificates in Apple Developer, configure Xcode with provisioning profiles, set bundle ID com.snapcalories.app, archive and validate with App Store Connect \u2192 [2]Android: generate signed keystore, configure gradle with release signing, enable minification and R8, build AAB format for Play Store, test on multiple devices \u2192 [3]Create store listings: write descriptions emphasizing AI food recognition, take 5 screenshots per platform, app icon 1024x1024, privacy policy URL, age rating 4+ \u2192 (Review: Both builds install and run on real devices|Retest: Upload to TestFlight/Internal testing works|Fail\u2192[2]) [Req: Task V]\n \"\"\",\n depends_on=[\"testing_suite\"],\n model=\"opus\"\n)\n\n# Claude's Tool Call:\ncreate_task(\n task_identifier=\"launch_features\",\n orchestration_group=\"calorie_counter\",\n execution_prompt=\"\"\"\n Task Y: Beta Testing Feedback Loop \u2192 [1]Setup TestFlight for 100 iOS beta testers, Google Play Internal Testing for Android, create feedback form in-app with screenshot capability, discord/slack community for testers \u2192 [2]Track metrics: daily active users, meal logging rate, photo vs manual entry ratio, feature usage heatmap, crash reports, average session time, user retention day 1/7/30 \u2192 [3]Iterate based on feedback: fix top 3 crashes, improve food recognition accuracy on reported failures, add most requested foods to database, optimize slow screens \u2192 (Review: 50+ beta testers active, <0.5% crash rate|Retest: User feedback form submits successfully|Fail\u2192[1]) [Req: Task X]\n \"\"\",\n depends_on=[\"production_deploy\", \"launch_features\"],\n model=\"sonnet\"\n)\n```\n\n</details>\n\n## claude hits go (`submit_orchestration`):\n\n> [!TIP]\n> \"locked and loaded. spinning up the `calorie_counter` squad. grab a coffee, this is gonna be lit.\"\n\n```python\nsubmit_orchestration(orchestration_group=\"calorie_counter\")\n```\n\n**boom:** claude just architected your entire app while you were doom-scrolling twitter. 11 parallel claude instances working in perfect harmony. `claude-cto` handles all the dependency management and handoffs automagically.\n\n**endgame:** production-ready app with AI food recognition, butter-smooth UI, offline support, and 85% test coverage. shipped before lunch. \ud83d\ude80\n\n---\n\n## \ud83d\udcbb your mission control: the cli dashboard\n\nwhile your AI cto's running the show, the CLI is your ops center - monitor progress, debug issues, or drop manual tasks like a boss.\n\n<p align=\"center\">\n <img src=\"https://i.imgur.com/your-cli-in-action.gif\" alt=\"claude cto cli go brrr\">\n</p>\n\n### real-time ops: how you'd run this circus\n\n<details>\n<summary><b>\ud83c\udfae CLI Commands Cheat Sheet</b></summary>\n\nsay your ai just launched that \"ecommerce_modernization\" plan. here's how you stay in the loop.\n\n**step 1: get the big picture \ud83d\uddfa\ufe0f** \nfirst, scope out what plans are cooking:\n```bash\n$ claude-cto list-orchestrations\n\n id status tasks completed failed created\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 1 running 5 2 0 2025-08-21T10:30:00\n```\n> \"cool, plan #1's live with 2/5 tasks already crushed.\"\n\n**step 2: watch the magic happen \ud83c\udf7f** \npeek behind the curtain with live updates:\n```bash\n$ claude-cto orchestration-status 1 --watch\n```\nnow your terminal's a live feed showing tasks flipping from `waiting` \u2192 `running` \u2192 `completed`.\n\n**step 3: stalk a specific worker \ud83d\udcdd** \npayments refactor taking too long? let's investigate:\n```bash\n$ claude-cto list\n\n id status last action logs\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 1 completed wrote security report task_1_...\n 2 completed wrote perf report task_2_...\n 3 running editing auth/session.js task_3_...\n 4 running analyzing stripe_api.py task_4_...\n 5 waiting - task_5_...\n```\nnow tail the payments worker (id 4):\n```bash\n# get the tl;dr\n$ tail -f ~/.claude-cto/tasks/task_4_*_summary.log\n\n# or go full detective mode\n$ less ~/.claude-cto/tasks/task_4_*_detailed.log\n```\n\n**step 4: drop ad-hoc tasks \ud83d\udd79\ufe0f** \nforgot something? no sweat - add tasks on the fly:\n```bash\n# fire-and-forget\n$ claude-cto run \"slap a 'modernization in progress' banner in readme.md\"\n\n# watch it live\n$ claude-cto run \"whip up a db seed script\" --watch\n```\n\n**step 5: launch pre-cooked workflows** \ngot a json blueprint? be the cto:\n```bash\n# deploy a full ci/cd pipeline\n$ claude-cto orchestrate cicd-pipeline.json --wait\n```\n\npro tip: mix these commands like a devops bartender. your ai team's always on call. \ud83c\udf78\n\n</details>\n\n---\n\n## \ud83d\udce6 get cooking in 60 seconds\n\n### 1. prep work\n- **python** (v3.10+) & **node.js** (v16+)\n- **claude code sdk**: `npm install -g @anthropic-ai/claude-code`\n- **auth**: just `claude auth login` - no api key circus\n\n### 2. installation options\n\n> I've laid out a bunch of options here. Honestly, if you're on a Mac, installing it with `brew` is probably the easiest and best way to go. If not, just use `pip` \u2013 it'll handle everything, including the CLI's `/bin` setup. Docker, I'd say, should be your very last choice. And just so you know, Smithery won't help for installing the full service (CLI, server, etc.) \u2013 it's just for quickly setting up the MCP integration with Claude Desktop.\n\n<div align=\"center\">\n \n<table>\n<tr>\n<th width=\"25%\">Method</th>\n<th width=\"40%\">Command</th>\n<th width=\"35%\">Best For</th>\n</tr>\n<tr>\n<td align=\"center\"><b>\ud83c\udf7a Homebrew</b><br/><sub>macOS/Linux</sub></td>\n<td><code>brew install yigitkonur/claude-cto/claude-cto</code></td>\n<td>One-command install</td>\n</tr>\n<tr>\n<td align=\"center\"><b>\u2728 Smithery</b><br/><sub>MCP only</sub></td>\n<td><code>npx -y @smithery/cli install @yigitkonur/claude-cto</code></td>\n<td>Claude Desktop/VSCode users</td>\n</tr>\n<tr>\n<td align=\"center\"><b>\ud83d\udc51 Full Monty</b></td>\n<td><code>pip install \"claude-cto[full]\"</code></td>\n<td>CLI + API + MCP combo</td>\n</tr>\n<tr>\n<td align=\"center\"><b>\ud83e\udde0 MCP Only</b></td>\n<td><code>pip install \"claude-cto[mcp]\"</code></td>\n<td>Just the Claude sauce</td>\n</tr>\n<tr>\n<td align=\"center\"><b>\ud83d\udda5\ufe0f CLI/Server</b></td>\n<td><code>pip install \"claude-cto[server]\"</code></td>\n<td>Terminal power user</td>\n</tr>\n<tr>\n<td align=\"center\"><b>\ud83d\udc33 Docker</b></td>\n<td><code>docker run yigitkonur35/claude-cto</code></td>\n<td>Zero dependencies</td>\n</tr>\n</table>\n\n</div>\n\n### 3. claude config (pip users only)\n\n> [!IMPORTANT]\n> If you went the pip route, wire up claude and fully restart claude desktop/vscode after this:\n\n```bash\nclaude mcp add claude-cto -s user -- python -m claude_cto.mcp.factory\n```\n\n---\n\n## \ud83d\udee0\ufe0f rest api: your integration playground\n\nthe real magic happens through a slick local rest api - hook it into anything from ci/cd to custom tooling. this can be a thing where you can manage your claude code execution remotely, just built on top of this API.\n\n<details>\n<summary><b>\ud83d\udc0d Python ETL Pipeline Example</b></summary>\n\n```python\nimport httpx, time, json\n\nSERVER = \"http://localhost:8000\"\n\n# 1. define the whole shebang\netl_blueprint = {\n \"tasks\": [\n {\"id\": \"grab_sales\", \"prompt\": \"yoink sales data from postgres\"},\n {\"id\": \"snag_inventory\", \"prompt\": \"pull inventory from mongodb\"},\n {\n \"id\": \"transform\", \n \"prompt\": \"cleanup & merge datasets\",\n \"needs\": [\"grab_sales\", \"snag_inventory\"],\n \"delay\": 2.0 # chill for 2 secs\n },\n {\"id\": \"dump_to_warehouse\", \"prompt\": \"shove clean data into snowflake\", \"needs\": [\"transform\"]},\n ]\n}\n\n# 2. fire it off\nprint(\"\ud83d\ude80 launching etl pipeline...\")\nr = httpx.post(f\"{SERVER}/api/v1/orchestrations\", json=etl_blueprint)\norch_id = r.json()[\"orchestration_id\"]\nprint(f\"\u2705 pipeline #{orch_id} live!\")\n\n# 3. watch like a hawk\nwhile True:\n status = httpx.get(f\"{SERVER}/api/v1/orchestrations/{orch_id}\").json()\n \n print(f\"status: {status['status']} | progress: {status['completed_tasks']}/{status['total_tasks']}\")\n if status['status'] in [\"done\", \"failed\", \"cancelled\"]:\n print(\"\\n\ud83c\udf89 all done! final report:\")\n print(json.dumps(status, indent=2))\n break\n time.sleep(5) # don't spam the api\n```\n\nthis api's your golden ticket - automate all the things without touching the cli. \ud83e\udd16\n\n</details>\n\n---\n\n## \u2728 feature breakdown: the tech sauce\n\n<div align=\"center\">\n\n| Feature | What it does | Why you care |\n| :---: | :--- | :--- |\n| **\ud83d\ude80 Parallel**<br/>`10x speed` | Runs multiple AI agents simultaneously | 10 tasks finish in 5 mins, not 50 |\n| **\ud83d\udd17 Dependencies**<br/>`DAG support` | Handles task dependencies automatically | Complex workflows just work |\n| **\ud83d\udd04 Auto-retries**<br/>`exponential backoff` | Smart retries with circuit breakers | No manual restarts for flaky wifi |\n| **\ud83e\udde0 Model picker**<br/>`opus/sonnet/haiku` | Assign models per task complexity | Save $$$ using heavy models wisely |\n| **\ud83d\udcdc Full logs**<br/>`summary + detailed` | Two-tier logging for every task | Debug like a pro with context |\n| **\ud83d\udcca Resource guard**<br/>`CPU/memory/disk` | Monitors system resources | Prevents machine meltdown |\n| **\ud83d\udcbe Crash-proof**<br/>`disk persistence` | Everything saved to SQLite | Power outage? Pick up where you left |\n| **\ud83d\udee1\ufe0f Circuit breaker**<br/>`failure protection` | Stops retrying broken components | No infinite failure loops |\n\n</div>\n\n---\n\n## \ud83d\udea2 deployment options\n\n<details>\n<summary><b>\ud83d\udc33 Docker (set it & forget it)</b></summary>\n\n```bash\n# quick start with docker\n# an api key isn't required, but you must manually run claude and complete auth. \n# use `brew` or `pip install` for an easier setup.\ndocker run -d \\\n --name claude-cto \\\n -p 8000:8000 \\\n -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \\\n yigitkonur35/claude-cto:latest\n\n# or run CLI commands directly\ndocker run --rm \\\n -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \\\n yigitkonur35/claude-cto run \"analyze this codebase\"\n\n# or use docker-compose for full setup\ndocker-compose up -d\n```\n\nfor detailed docker setup, multi-arch builds, and advanced configs, check out [DOCKER.md](./DOCKER.md).\n\n### docker-compose snippet\ndrop this in `docker-compose.yml`:\n```yaml\nversion: '3.8'\nservices:\n claude-cto:\n image: yigitkonur35/claude-cto:latest\n ports:\n - \"8000:8000\"\n environment:\n - ANTHROPIC_API_KEY=${API_KEY}\n volumes:\n - ./claude_data:/root/.claude-cto # keeps your data safe\n restart: unless-stopped\n```\nfire it up: `docker-compose up -d`\n\n</details>\n\n<details>\n<summary><b>\ud83d\udc27 Systemd (for linux servers)</b></summary>\n\n1. create `/etc/systemd/system/claude-cto.service`\n2. paste config (ask your friendly neighborhood sysadmin)\n3. run: `sudo systemctl enable --now claude-cto`\n\n</details>\n\n---\n\n## \ud83d\udd27 config & fixes\n\n<details>\n<summary><b>\u2699\ufe0f Environment Variables</b></summary>\n\n| variable | purpose | default |\n| :--- | :--- | :--- |\n| `ANTHROPIC_API_KEY` | your claude api key | **no need for claude max sub users** - optional for key-based usage |\n| `CLAUDE_CTO_SERVER_URL` | where the cli connects | `http://localhost:8000` |\n| `CLAUDE_CTO_DB` | task database location | `~/.claude-cto/tasks.db` |\n| `CLAUDE_CTO_ENABLE_SOUNDS` | ping when tasks complete | `true` |\n| `CLAUDE_CTO_MODE` | `standalone` or `proxy` | `auto` |\n\n</details>\n\n<details>\n<summary><b>\ud83d\udd25 Common Issues Quickfix</b></summary>\n\n| problem | solution |\n| :--- | :--- |\n| **tasks stuck** | run `claude --version` to check auth |\n| **database locked** | `pkill -f claude-cto && rm ~/.claude-cto/tasks.db-journal` |\n| **port 8000 taken** | `lsof -i :8000` or let it auto-find ports |\n| **permission denied** | `sudo chown -R $(whoami) ~/.claude-cto` |\n\n</details>\n\n---\n\n<div align=\"center\">\n\n**Built with \ud83d\udd25 by devs who got tired of watching AI work sequentially**\n\n</div>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Fire-and-forget task execution system for Claude Code SDK with CLI and MCP interfaces",
"version": "0.6.2",
"project_urls": {
"Bug Tracker": "https://github.com/yigitkonur/claude-cto/issues",
"Changelog": "https://github.com/yigitkonur/claude-cto/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/yigitkonur/claude-cto/blob/main/README.md",
"Homepage": "https://github.com/yigitkonur/claude-cto",
"MCP Documentation": "https://github.com/yigitkonur/claude-cto/blob/main/MCP_README.md",
"Repository": "https://github.com/yigitkonur/claude-cto",
"Smithery": "https://smithery.ai/@yigitkonur/claude-cto"
},
"split_keywords": [
"claude",
" ai",
" automation",
" task-queue",
" cli",
" mcp",
" anthropic"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c7cc9dff0ae1bb1593acef8014276d91b204b52f5c977f89a23497ecadf8fc19",
"md5": "c347fcc7665cde6d422cfbfbcd7a13e5",
"sha256": "69fd0db77e48846750327d4e77444aa1f09893b0f044a168899a8091fa7537b3"
},
"downloads": -1,
"filename": "claude_cto-0.6.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c347fcc7665cde6d422cfbfbcd7a13e5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 100994,
"upload_time": "2025-08-24T09:46:55",
"upload_time_iso_8601": "2025-08-24T09:46:55.322125Z",
"url": "https://files.pythonhosted.org/packages/c7/cc/9dff0ae1bb1593acef8014276d91b204b52f5c977f89a23497ecadf8fc19/claude_cto-0.6.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c4f1c65ded51edf007c45bac061eb52620d516589c361aa0595794d1515a0b2a",
"md5": "2327f26838be49ce34059980b93999ea",
"sha256": "9414e93e20b2e190d7eb6053bef3671e75718d7a6119dac85f571888a8318db1"
},
"downloads": -1,
"filename": "claude_cto-0.6.2.tar.gz",
"has_sig": false,
"md5_digest": "2327f26838be49ce34059980b93999ea",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 94599,
"upload_time": "2025-08-24T09:46:56",
"upload_time_iso_8601": "2025-08-24T09:46:56.640445Z",
"url": "https://files.pythonhosted.org/packages/c4/f1/c65ded51edf007c45bac061eb52620d516589c361aa0595794d1515a0b2a/claude_cto-0.6.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-24 09:46:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yigitkonur",
"github_project": "claude-cto",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "claude-cto"
}