claudish-oai 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1312 @@
1
+ ---
2
+ name: claudish-usage
3
+ description: CRITICAL - Guide for using Claudish CLI ONLY through sub-agents to run Claude Code with any AI model (OpenRouter, Gemini, OpenAI, local models). NEVER run Claudish directly in main context unless user explicitly requests it. Use when user mentions external AI models, Claudish, OpenRouter, Gemini, OpenAI, Ollama, or alternative models. Includes mandatory sub-agent delegation patterns, agent selection guide, file-based instructions, and strict rules to prevent context window pollution.
4
+ ---
5
+
6
+ # Claudish Usage Skill
7
+
8
+ **Version:** 2.0.0
9
+ **Purpose:** Guide AI agents on how to use Claudish CLI to run Claude Code with any AI model
10
+ **Status:** Production Ready
11
+
12
+ ## ⚠️ CRITICAL RULES - READ FIRST
13
+
14
+ ### 🚫 NEVER Run Claudish from Main Context
15
+
16
+ **Claudish MUST ONLY be run through sub-agents** unless the user **explicitly** requests direct execution.
17
+
18
+ **Why:**
19
+ - Running Claudish directly pollutes main context with 10K+ tokens (full conversation + reasoning)
20
+ - Destroys context window efficiency
21
+ - Makes main conversation unmanageable
22
+
23
+ **When you can run Claudish directly:**
24
+ - ✅ User explicitly says "run claudish directly" or "don't use a sub-agent"
25
+ - ✅ User is debugging and wants to see full output
26
+ - ✅ User specifically requests main context execution
27
+
28
+ **When you MUST use sub-agent:**
29
+ - ✅ User says "use Grok to implement X" (delegate to sub-agent)
30
+ - ✅ User says "ask GPT-5.3 to review X" (delegate to sub-agent)
31
+ - ✅ User mentions any model name without "directly" (delegate to sub-agent)
32
+ - ✅ Any production task (always delegate)
33
+
34
+ ### 📋 Workflow Decision Tree
35
+
36
+ ```
37
+ User Request
38
+
39
+ Does it mention Claudish/OpenRouter/model name? → NO → Don't use this skill
40
+ ↓ YES
41
+
42
+ Does user say "directly" or "in main context"? → YES → Run in main context (rare)
43
+ ↓ NO
44
+
45
+ Find appropriate agent or create one → Delegate to sub-agent (default)
46
+ ```
47
+
48
+ ## 🤖 Agent Selection Guide
49
+
50
+ ### Step 1: Find the Right Agent
51
+
52
+ **When user requests Claudish task, follow this process:**
53
+
54
+ 1. **Check for existing agents** that support proxy mode or external model delegation
55
+ 2. **If no suitable agent exists:**
56
+ - Suggest creating a new proxy-mode agent for this task type
57
+ - Offer to proceed with generic `general-purpose` agent if user declines
58
+ 3. **If user declines agent creation:**
59
+ - Warn about context pollution
60
+ - Ask if they want to proceed anyway
61
+
62
+ ### Step 2: Agent Type Selection Matrix
63
+
64
+ | Task Type | Recommended Agent | Fallback | Notes |
65
+ |-----------|------------------|----------|-------|
66
+ | **Code implementation** | Create coding agent with proxy mode | `general-purpose` | Best: custom agent for project-specific patterns |
67
+ | **Code review** | Use existing code review agent + proxy | `general-purpose` | Check if plugin has review agent first |
68
+ | **Architecture planning** | Use existing architect agent + proxy | `general-purpose` | Look for `architect` or `planner` agents |
69
+ | **Testing** | Use existing test agent + proxy | `general-purpose` | Look for `test-architect` or `tester` agents |
70
+ | **Refactoring** | Create refactoring agent with proxy | `general-purpose` | Complex refactors benefit from specialized agent |
71
+ | **Documentation** | `general-purpose` | - | Simple task, generic agent OK |
72
+ | **Analysis** | Use existing analysis agent + proxy | `general-purpose` | Check for `analyzer` or `detective` agents |
73
+ | **Other** | `general-purpose` | - | Default for unknown task types |
74
+
75
+ ### Step 3: Agent Creation Offer (When No Agent Exists)
76
+
77
+ **Template response:**
78
+ ```
79
+ I notice you want to use [Model Name] for [task type].
80
+
81
+ RECOMMENDATION: Create a specialized [task type] agent with proxy mode support.
82
+
83
+ This would:
84
+ ✅ Provide better task-specific guidance
85
+ ✅ Reusable for future [task type] tasks
86
+ ✅ Optimized prompting for [Model Name]
87
+
88
+ Options:
89
+ 1. Create specialized agent (recommended) - takes 2-3 minutes
90
+ 2. Use generic general-purpose agent - works but less optimized
91
+ 3. Run directly in main context (NOT recommended - pollutes context)
92
+
93
+ Which would you prefer?
94
+ ```
95
+
96
+ ### Step 4: Common Agents by Plugin
97
+
98
+ **Frontend Plugin:**
99
+ - `typescript-frontend-dev` - Use for UI implementation with external models
100
+ - `frontend-architect` - Use for architecture planning with external models
101
+ - `senior-code-reviewer` - Use for code review (can delegate to external models)
102
+ - `test-architect` - Use for test planning/implementation
103
+
104
+ **Bun Backend Plugin:**
105
+ - `backend-developer` - Use for API implementation with external models
106
+ - `api-architect` - Use for API design with external models
107
+
108
+ **Code Analysis Plugin:**
109
+ - `codebase-detective` - Use for investigation tasks with external models
110
+
111
+ **No Plugin:**
112
+ - `general-purpose` - Default fallback for any task
113
+
114
+ ### Step 5: Example Agent Selection
115
+
116
+ **Example 1: User says "use Grok to implement authentication"**
117
+ ```
118
+ Task: Code implementation (authentication)
119
+ Plugin: Bun Backend (if backend) or Frontend (if UI)
120
+
121
+ Decision:
122
+ 1. Check for backend-developer or typescript-frontend-dev agent
123
+ 2. Found backend-developer? → Use it with Grok proxy
124
+ 3. Not found? → Offer to create custom auth agent
125
+ 4. User declines? → Use general-purpose with file-based pattern
126
+ ```
127
+
128
+ **Example 2: User says "ask GPT-5.3 to review my API design"**
129
+ ```
130
+ Task: Code review (API design)
131
+ Plugin: Bun Backend
132
+
133
+ Decision:
134
+ 1. Check for api-architect or senior-code-reviewer agent
135
+ 2. Found? → Use it with GPT-5.3 proxy
136
+ 3. Not found? → Use general-purpose with review instructions
137
+ 4. Never run directly in main context
138
+ ```
139
+
140
+ **Example 3: User says "use Gemini to refactor this component"**
141
+ ```
142
+ Task: Refactoring (component)
143
+ Plugin: Frontend
144
+
145
+ Decision:
146
+ 1. No specialized refactoring agent exists
147
+ 2. Offer to create component-refactoring agent
148
+ 3. User declines? → Use typescript-frontend-dev with proxy
149
+ 4. Still no agent? → Use general-purpose with file-based pattern
150
+ ```
151
+
152
+ ## Overview
153
+
154
+ **Claudish** is a CLI tool that allows running Claude Code with any AI model via prefix-based routing. Supports OpenRouter (100+ models), direct Google Gemini API, direct OpenAI API, and local models (Ollama, LM Studio, vLLM, MLX).
155
+
156
+ **Key Principle:** **ALWAYS** use Claudish through sub-agents with file-based instructions to avoid context window pollution.
157
+
158
+ ## What is Claudish?
159
+
160
+ Claudish (Claude-ish) is a proxy tool that:
161
+ - ✅ Runs Claude Code with **any AI model** via prefix-based routing
162
+ - ✅ Supports OpenRouter, Gemini, OpenAI, and local models
163
+ - ✅ Uses local API-compatible proxy server
164
+ - ✅ Supports 100% of Claude Code features
165
+ - ✅ Provides cost tracking and model selection
166
+ - ✅ Enables multi-model workflows
167
+
168
+ ## Model Routing
169
+
170
+ | Prefix | Backend | Example |
171
+ |--------|---------|---------|
172
+ | _(none)_ | OpenRouter | `openai/gpt-5.3` |
173
+ | `g/` `gemini/` | Google Gemini | `g/gemini-2.0-flash` |
174
+ | `oai/` `openai/` | OpenAI | `oai/gpt-4o` |
175
+ | `ollama/` | Ollama | `ollama/llama3.2` |
176
+ | `lmstudio/` | LM Studio | `lmstudio/model` |
177
+ | `http://...` | Custom | `http://localhost:8000/model` |
178
+
179
+ **Use Cases:**
180
+ - Run tasks with different AI models (Grok for speed, GPT-5.3 for reasoning, Gemini for large context)
181
+ - Use direct APIs for lower latency (Gemini, OpenAI)
182
+ - Use local models for free, private inference (Ollama, LM Studio)
183
+ - Compare model performance on same task
184
+ - Reduce costs with cheaper models for simple tasks
185
+
186
+ ## Requirements
187
+
188
+ ### System Requirements
189
+ - **Claudish CLI** - Install with: `npm install -g claudish` or `bun install -g claudish`
190
+ - **Claude Code** - Must be installed
191
+ - **At least one API key** (see below)
192
+
193
+ ### Environment Variables
194
+
195
+ ```bash
196
+ # API Keys (at least one required)
197
+ export OPENROUTER_API_KEY='sk-or-v1-...' # OpenRouter (100+ models)
198
+ export GEMINI_API_KEY='...' # Direct Gemini API (g/ prefix)
199
+ export OPENAI_API_KEY='sk-...' # Direct OpenAI API (oai/ prefix)
200
+
201
+ # Placeholder (required to prevent Claude Code dialog)
202
+ export ANTHROPIC_API_KEY='sk-ant-api03-placeholder'
203
+
204
+ # Custom endpoints (optional)
205
+ export GEMINI_BASE_URL='https://...' # Custom Gemini endpoint
206
+ export OPENAI_BASE_URL='https://...' # Custom OpenAI/Azure endpoint
207
+ export OLLAMA_BASE_URL='http://...' # Custom Ollama server
208
+ export LMSTUDIO_BASE_URL='http://...' # Custom LM Studio server
209
+
210
+ # Default model (optional)
211
+ export CLAUDISH_MODEL='openai/gpt-5.3' # Default model
212
+ ```
213
+
214
+ **Get API Keys:**
215
+ - OpenRouter: https://openrouter.ai/keys (free tier available)
216
+ - Gemini: https://aistudio.google.com/apikey
217
+ - OpenAI: https://platform.openai.com/api-keys
218
+ - Local models: No API key needed
219
+
220
+ ## Quick Start Guide
221
+
222
+ ### Step 1: Install Claudish
223
+
224
+ ```bash
225
+ # With npm (works everywhere)
226
+ npm install -g claudish
227
+
228
+ # With Bun (faster)
229
+ bun install -g claudish
230
+
231
+ # Verify installation
232
+ claudish --version
233
+ ```
234
+
235
+ ### Step 2: Get Available Models
236
+
237
+ ```bash
238
+ # List ALL OpenRouter models grouped by provider
239
+ claudish --models
240
+
241
+ # Fuzzy search models by name, ID, or description
242
+ claudish --models gemini
243
+ claudish --models "grok code"
244
+
245
+ # Show top recommended programming models (curated list)
246
+ claudish --top-models
247
+
248
+ # JSON output for parsing
249
+ claudish --models --json
250
+ claudish --top-models --json
251
+
252
+ # Force update from OpenRouter API
253
+ claudish --models --force-update
254
+ ```
255
+
256
+ ### Step 3: Run Claudish
257
+
258
+ **Interactive Mode (default):**
259
+ ```bash
260
+ # Shows model selector, persistent session
261
+ claudish
262
+ ```
263
+
264
+ **Single-shot Mode:**
265
+ ```bash
266
+ # One task and exit (requires --model)
267
+ claudish --model x-ai/grok-code-fast-1 "implement user authentication"
268
+ ```
269
+
270
+ **With stdin for large prompts:**
271
+ ```bash
272
+ # Read prompt from stdin (useful for git diffs, code review)
273
+ git diff | claudish --stdin --model openai/gpt-5.3-codex "Review these changes"
274
+ ```
275
+
276
+ ## Recommended Models
277
+
278
+ **Top Models for Development (v3.1.1):**
279
+
280
+ | Model | Provider | Best For |
281
+ |-------|----------|----------|
282
+ | `openai/gpt-5.3` | OpenAI | **Default** - Most advanced reasoning |
283
+ | `minimax/minimax-m2.1` | MiniMax | Budget-friendly, fast |
284
+ | `z-ai/glm-4.7` | Z.AI | Balanced performance |
285
+ | `google/gemini-3-pro-preview` | Google | 1M context window |
286
+ | `moonshotai/kimi-k2-thinking` | MoonShot | Extended thinking |
287
+ | `deepseek/deepseek-v3.2` | DeepSeek | Code specialist |
288
+ | `qwen/qwen3-vl-235b-a22b-thinking` | Alibaba | Vision + reasoning |
289
+
290
+ **Direct API Options (lower latency):**
291
+
292
+ | Model | Backend | Best For |
293
+ |-------|---------|----------|
294
+ | `g/gemini-2.0-flash` | Gemini | Fast tasks, large context |
295
+ | `oai/gpt-4o` | OpenAI | General purpose |
296
+ | `ollama/llama3.2` | Local | Free, private |
297
+
298
+ **Get Latest Models:**
299
+ ```bash
300
+ # List all models (auto-updates every 2 days)
301
+ claudish --models
302
+
303
+ # Search for specific models
304
+ claudish --models grok
305
+ claudish --models "gemini flash"
306
+
307
+ # Show curated top models
308
+ claudish --top-models
309
+
310
+ # Force immediate update
311
+ claudish --models --force-update
312
+ ```
313
+
314
+ ## NEW: Direct Agent Selection (v2.1.0)
315
+
316
+ **Use `--agent` flag to invoke agents directly without the file-based pattern:**
317
+
318
+ ```bash
319
+ # Use specific agent (prepends @agent- automatically)
320
+ claudish --model x-ai/grok-code-fast-1 --agent frontend:developer "implement React component"
321
+
322
+ # Claude receives: "Use the @agent-frontend:developer agent to: implement React component"
323
+
324
+ # List available agents in project
325
+ claudish --list-agents
326
+ ```
327
+
328
+ **When to use `--agent` vs file-based pattern:**
329
+
330
+ **Use `--agent` when:**
331
+ - Single, simple task that needs agent specialization
332
+ - Direct conversation with one agent
333
+ - Testing agent behavior
334
+ - CLI convenience
335
+
336
+ **Use file-based pattern when:**
337
+ - Complex multi-step workflows
338
+ - Multiple agents needed
339
+ - Large codebases
340
+ - Production tasks requiring review
341
+ - Need isolation from main conversation
342
+
343
+ **Example comparisons:**
344
+
345
+ **Simple task (use `--agent`):**
346
+ ```bash
347
+ claudish --model x-ai/grok-code-fast-1 --agent frontend:developer "create button component"
348
+ ```
349
+
350
+ **Complex task (use file-based):**
351
+ ```typescript
352
+ // multi-phase-workflow.md
353
+ Phase 1: Use api-architect to design API
354
+ Phase 2: Use backend-developer to implement
355
+ Phase 3: Use test-architect to add tests
356
+ Phase 4: Use senior-code-reviewer to review
357
+
358
+ then:
359
+ claudish --model x-ai/grok-code-fast-1 --stdin < multi-phase-workflow.md
360
+ ```
361
+
362
+ ## Best Practice: File-Based Sub-Agent Pattern
363
+
364
+ ### ⚠️ CRITICAL: Don't Run Claudish Directly from Main Conversation
365
+
366
+ **Why:** Running Claudish directly in main conversation pollutes context window with:
367
+ - Entire conversation transcript
368
+ - All tool outputs
369
+ - Model reasoning (can be 10K+ tokens)
370
+
371
+ **Solution:** Use file-based sub-agent pattern
372
+
373
+ ### File-Based Pattern (Recommended)
374
+
375
+ **Step 1: Create instruction file**
376
+ ```markdown
377
+ # /tmp/claudish-task-{timestamp}.md
378
+
379
+ ## Task
380
+ Implement user authentication with JWT tokens
381
+
382
+ ## Requirements
383
+ - Use bcrypt for password hashing
384
+ - Generate JWT with 24h expiration
385
+ - Add middleware for protected routes
386
+
387
+ ## Deliverables
388
+ Write implementation to: /tmp/claudish-result-{timestamp}.md
389
+
390
+ ## Output Format
391
+ ```markdown
392
+ ## Implementation
393
+
394
+ [code here]
395
+
396
+ ## Files Created/Modified
397
+ - path/to/file1.ts
398
+ - path/to/file2.ts
399
+
400
+ ## Tests
401
+ [test code if applicable]
402
+
403
+ ## Notes
404
+ [any important notes]
405
+ ```
406
+ ```
407
+
408
+ **Step 2: Run Claudish with file instruction**
409
+ ```bash
410
+ # Read instruction from file, write result to file
411
+ claudish --model x-ai/grok-code-fast-1 --stdin < /tmp/claudish-task-{timestamp}.md > /tmp/claudish-result-{timestamp}.md
412
+ ```
413
+
414
+ **Step 3: Read result file and provide summary**
415
+ ```typescript
416
+ // In your agent/command:
417
+ const result = await Read({ file_path: "/tmp/claudish-result-{timestamp}.md" });
418
+
419
+ // Parse result
420
+ const filesModified = extractFilesModified(result);
421
+ const summary = extractSummary(result);
422
+
423
+ // Provide short feedback to main agent
424
+ return `✅ Task completed. Modified ${filesModified.length} files. ${summary}`;
425
+ ```
426
+
427
+ ### Complete Example: Using Claudish in Sub-Agent
428
+
429
+ ```typescript
430
+ /**
431
+ * Example: Run code review with Grok via Claudish sub-agent
432
+ */
433
+ async function runCodeReviewWithGrok(files: string[]) {
434
+ const timestamp = Date.now();
435
+ const instructionFile = `/tmp/claudish-review-instruction-${timestamp}.md`;
436
+ const resultFile = `/tmp/claudish-review-result-${timestamp}.md`;
437
+
438
+ // Step 1: Create instruction file
439
+ const instruction = `# Code Review Task
440
+
441
+ ## Files to Review
442
+ ${files.map(f => `- ${f}`).join('\n')}
443
+
444
+ ## Review Criteria
445
+ - Code quality and maintainability
446
+ - Potential bugs or issues
447
+ - Performance considerations
448
+ - Security vulnerabilities
449
+
450
+ ## Output Format
451
+ Write your review to: ${resultFile}
452
+
453
+ Use this format:
454
+ \`\`\`markdown
455
+ ## Summary
456
+ [Brief overview]
457
+
458
+ ## Issues Found
459
+ ### Critical
460
+ - [issue 1]
461
+
462
+ ### Medium
463
+ - [issue 2]
464
+
465
+ ### Low
466
+ - [issue 3]
467
+
468
+ ## Recommendations
469
+ - [recommendation 1]
470
+
471
+ ## Files Reviewed
472
+ - [file 1]: [status]
473
+ \`\`\`
474
+ `;
475
+
476
+ await Write({ file_path: instructionFile, content: instruction });
477
+
478
+ // Step 2: Run Claudish with stdin
479
+ await Bash(`claudish --model x-ai/grok-code-fast-1 --stdin < ${instructionFile}`);
480
+
481
+ // Step 3: Read result
482
+ const result = await Read({ file_path: resultFile });
483
+
484
+ // Step 4: Parse and return summary
485
+ const summary = extractSummary(result);
486
+ const issueCount = extractIssueCount(result);
487
+
488
+ // Step 5: Clean up temp files
489
+ await Bash(`rm ${instructionFile} ${resultFile}`);
490
+
491
+ // Step 6: Return concise feedback
492
+ return {
493
+ success: true,
494
+ summary,
495
+ issueCount,
496
+ fullReview: result // Available if needed, but not in main context
497
+ };
498
+ }
499
+
500
+ function extractSummary(review: string): string {
501
+ const match = review.match(/## Summary\s*\n(.*?)(?=\n##|$)/s);
502
+ return match ? match[1].trim() : "Review completed";
503
+ }
504
+
505
+ function extractIssueCount(review: string): { critical: number; medium: number; low: number } {
506
+ const critical = (review.match(/### Critical\s*\n(.*?)(?=\n###|$)/s)?.[1].match(/^-/gm) || []).length;
507
+ const medium = (review.match(/### Medium\s*\n(.*?)(?=\n###|$)/s)?.[1].match(/^-/gm) || []).length;
508
+ const low = (review.match(/### Low\s*\n(.*?)(?=\n###|$)/s)?.[1].match(/^-/gm) || []).length;
509
+
510
+ return { critical, medium, low };
511
+ }
512
+ ```
513
+
514
+ ## Sub-Agent Delegation Pattern
515
+
516
+ When running Claudish from an agent, use the Task tool to create a sub-agent:
517
+
518
+ ### Pattern 1: Simple Task Delegation
519
+
520
+ ```typescript
521
+ /**
522
+ * Example: Delegate implementation to Grok via Claudish
523
+ */
524
+ async function implementFeatureWithGrok(featureDescription: string) {
525
+ // Use Task tool to create sub-agent
526
+ const result = await Task({
527
+ subagent_type: "general-purpose",
528
+ description: "Implement feature with Grok",
529
+ prompt: `
530
+ Use Claudish CLI to implement this feature with Grok model:
531
+
532
+ ${featureDescription}
533
+
534
+ INSTRUCTIONS:
535
+ 1. Search for available models:
536
+ claudish --models grok
537
+
538
+ 2. Run implementation with Grok:
539
+ claudish --model x-ai/grok-code-fast-1 "${featureDescription}"
540
+
541
+ 3. Return ONLY:
542
+ - List of files created/modified
543
+ - Brief summary (2-3 sentences)
544
+ - Any errors encountered
545
+
546
+ DO NOT return the full conversation transcript or implementation details.
547
+ Keep your response under 500 tokens.
548
+ `
549
+ });
550
+
551
+ return result;
552
+ }
553
+ ```
554
+
555
+ ### Pattern 2: File-Based Task Delegation
556
+
557
+ ```typescript
558
+ /**
559
+ * Example: Use file-based instruction pattern in sub-agent
560
+ */
561
+ async function analyzeCodeWithGemini(codebasePath: string) {
562
+ const timestamp = Date.now();
563
+ const instructionFile = `/tmp/claudish-analyze-${timestamp}.md`;
564
+ const resultFile = `/tmp/claudish-analyze-result-${timestamp}.md`;
565
+
566
+ // Create instruction file
567
+ const instruction = `# Codebase Analysis Task
568
+
569
+ ## Codebase Path
570
+ ${codebasePath}
571
+
572
+ ## Analysis Required
573
+ - Architecture overview
574
+ - Key patterns used
575
+ - Potential improvements
576
+ - Security considerations
577
+
578
+ ## Output
579
+ Write analysis to: ${resultFile}
580
+
581
+ Keep analysis concise (under 1000 words).
582
+ `;
583
+
584
+ await Write({ file_path: instructionFile, content: instruction });
585
+
586
+ // Delegate to sub-agent
587
+ const result = await Task({
588
+ subagent_type: "general-purpose",
589
+ description: "Analyze codebase with Gemini",
590
+ prompt: `
591
+ Use Claudish to analyze codebase with Gemini model.
592
+
593
+ Instruction file: ${instructionFile}
594
+ Result file: ${resultFile}
595
+
596
+ STEPS:
597
+ 1. Read instruction file: ${instructionFile}
598
+ 2. Run: claudish --model google/gemini-2.5-flash --stdin < ${instructionFile}
599
+ 3. Wait for completion
600
+ 4. Read result file: ${resultFile}
601
+ 5. Return ONLY a 2-3 sentence summary
602
+
603
+ DO NOT include the full analysis in your response.
604
+ The full analysis is in ${resultFile} if needed.
605
+ `
606
+ });
607
+
608
+ // Read full result if needed
609
+ const fullAnalysis = await Read({ file_path: resultFile });
610
+
611
+ // Clean up
612
+ await Bash(`rm ${instructionFile} ${resultFile}`);
613
+
614
+ return {
615
+ summary: result,
616
+ fullAnalysis
617
+ };
618
+ }
619
+ ```
620
+
621
+ ### Pattern 3: Multi-Model Comparison
622
+
623
+ ```typescript
624
+ /**
625
+ * Example: Run same task with multiple models and compare
626
+ */
627
+ async function compareModels(task: string, models: string[]) {
628
+ const results = [];
629
+
630
+ for (const model of models) {
631
+ const timestamp = Date.now();
632
+ const resultFile = `/tmp/claudish-${model.replace('/', '-')}-${timestamp}.md`;
633
+
634
+ // Run task with each model
635
+ await Task({
636
+ subagent_type: "general-purpose",
637
+ description: `Run task with ${model}`,
638
+ prompt: `
639
+ Use Claudish to run this task with ${model}:
640
+
641
+ ${task}
642
+
643
+ STEPS:
644
+ 1. Run: claudish --model ${model} --json "${task}"
645
+ 2. Parse JSON output
646
+ 3. Return ONLY:
647
+ - Cost (from total_cost_usd)
648
+ - Duration (from duration_ms)
649
+ - Token usage (from usage.input_tokens and usage.output_tokens)
650
+ - Brief quality assessment (1-2 sentences)
651
+
652
+ DO NOT return full output.
653
+ `
654
+ });
655
+
656
+ results.push({
657
+ model,
658
+ resultFile
659
+ });
660
+ }
661
+
662
+ return results;
663
+ }
664
+ ```
665
+
666
+ ## Common Workflows
667
+
668
+ ### Workflow 1: Quick Code Generation with Grok
669
+
670
+ ```bash
671
+ # Fast, agentic coding with visible reasoning
672
+ claudish --model x-ai/grok-code-fast-1 "add error handling to api routes"
673
+ ```
674
+
675
+ ### Workflow 2: Complex Refactoring with GPT-5.3
676
+
677
+ ```bash
678
+ # Advanced reasoning for complex tasks
679
+ claudish --model openai/gpt-5 "refactor authentication system to use OAuth2"
680
+ ```
681
+
682
+ ### Workflow 3: UI Implementation with Qwen (Vision)
683
+
684
+ ```bash
685
+ # Vision-language model for UI tasks
686
+ claudish --model qwen/qwen3-vl-235b-a22b-instruct "implement dashboard from figma design"
687
+ ```
688
+
689
+ ### Workflow 4: Code Review with Gemini
690
+
691
+ ```bash
692
+ # State-of-the-art reasoning for thorough review
693
+ git diff | claudish --stdin --model google/gemini-2.5-flash "Review these changes for bugs and improvements"
694
+ ```
695
+
696
+ ### Workflow 5: Multi-Model Consensus
697
+
698
+ ```bash
699
+ # Run same task with multiple models
700
+ for model in "x-ai/grok-code-fast-1" "google/gemini-2.5-flash" "openai/gpt-5.3"; do
701
+ echo "=== Testing with $model ==="
702
+ claudish --model "$model" "find security vulnerabilities in auth.ts"
703
+ done
704
+ ```
705
+
706
+ ## Claudish CLI Flags Reference
707
+
708
+ ### Essential Flags
709
+
710
+ | Flag | Description | Example |
711
+ |------|-------------|---------|
712
+ | `--model <model>` | OpenRouter model to use | `--model x-ai/grok-code-fast-1` |
713
+ | `--stdin` | Read prompt from stdin | `git diff \| claudish --stdin --model grok` |
714
+ | `--models` | List all models or search | `claudish --models` or `claudish --models gemini` |
715
+ | `--top-models` | Show top recommended models | `claudish --top-models` |
716
+ | `--json` | JSON output (implies --quiet) | `claudish --json "task"` |
717
+ | `--help-ai` | Print AI agent usage guide | `claudish --help-ai` |
718
+
719
+ ### Advanced Flags
720
+
721
+ | Flag | Description | Default |
722
+ |------|-------------|---------|
723
+ | `--interactive` / `-i` | Interactive mode | Auto (no prompt = interactive) |
724
+ | `--quiet` / `-q` | Suppress log messages | Quiet in single-shot |
725
+ | `--verbose` / `-v` | Show log messages | Verbose in interactive |
726
+ | `--debug` / `-d` | Enable debug logging to file | Disabled |
727
+ | `--port <port>` | Proxy server port | Random (3000-9000) |
728
+ | `--no-auto-approve` | Require permission prompts | Auto-approve enabled |
729
+ | `--dangerous` | Disable sandbox | Disabled |
730
+ | `--monitor` | Proxy to real Anthropic API (debug) | Disabled |
731
+ | `--force-update` | Force refresh model cache | Auto (>2 days) |
732
+
733
+ ### Output Modes
734
+
735
+ 1. **Quiet Mode (default in single-shot)**
736
+ ```bash
737
+ claudish --model grok "task"
738
+ # Clean output, no [claudish] logs
739
+ ```
740
+
741
+ 2. **Verbose Mode**
742
+ ```bash
743
+ claudish --verbose "task"
744
+ # Shows all [claudish] logs for debugging
745
+ ```
746
+
747
+ 3. **JSON Mode**
748
+ ```bash
749
+ claudish --json "task"
750
+ # Structured output: {result, cost, usage, duration}
751
+ ```
752
+
753
+ ## Cost Tracking
754
+
755
+ Claudish automatically tracks costs in the status line:
756
+
757
+ ```
758
+ directory • model-id • $cost • ctx%
759
+ ```
760
+
761
+ **Example:**
762
+ ```
763
+ my-project • x-ai/grok-code-fast-1 • $0.12 • 67%
764
+ ```
765
+
766
+ Shows:
767
+ - 💰 **Cost**: $0.12 USD spent in current session
768
+ - 📊 **Context**: 67% of context window remaining
769
+
770
+ **JSON Output Cost:**
771
+ ```bash
772
+ claudish --json "task" | jq '.total_cost_usd'
773
+ # Output: 0.068
774
+ ```
775
+
776
+ ## Error Handling
777
+
778
+ ### Error 1: OPENROUTER_API_KEY Not Set
779
+
780
+ **Error:**
781
+ ```
782
+ Error: OPENROUTER_API_KEY environment variable is required
783
+ ```
784
+
785
+ **Fix:**
786
+ ```bash
787
+ export OPENROUTER_API_KEY='sk-or-v1-...'
788
+ # Or add to ~/.zshrc or ~/.bashrc
789
+ ```
790
+
791
+ ### Error 2: Claudish Not Installed
792
+
793
+ **Error:**
794
+ ```
795
+ command not found: claudish
796
+ ```
797
+
798
+ **Fix:**
799
+ ```bash
800
+ npm install -g claudish
801
+ # Or: bun install -g claudish
802
+ ```
803
+
804
+ ### Error 3: Model Not Found
805
+
806
+ **Error:**
807
+ ```
808
+ Model 'invalid/model' not found
809
+ ```
810
+
811
+ **Fix:**
812
+ ```bash
813
+ # List available models
814
+ claudish --models
815
+
816
+ # Use valid model ID
817
+ claudish --model x-ai/grok-code-fast-1 "task"
818
+ ```
819
+
820
+ ### Error 4: OpenRouter API Error
821
+
822
+ **Error:**
823
+ ```
824
+ OpenRouter API error: 401 Unauthorized
825
+ ```
826
+
827
+ **Fix:**
828
+ 1. Check API key is correct
829
+ 2. Verify API key at https://openrouter.ai/keys
830
+ 3. Check API key has credits (free tier or paid)
831
+
832
+ ### Error 5: Port Already in Use
833
+
834
+ **Error:**
835
+ ```
836
+ Error: Port 3000 already in use
837
+ ```
838
+
839
+ **Fix:**
840
+ ```bash
841
+ # Let Claudish pick random port (default)
842
+ claudish --model grok "task"
843
+
844
+ # Or specify different port
845
+ claudish --port 8080 --model grok "task"
846
+ ```
847
+
848
+ ## Best Practices
849
+
850
+ ### 1. ✅ Use File-Based Instructions
851
+
852
+ **Why:** Avoids context window pollution
853
+
854
+ **How:**
855
+ ```bash
856
+ # Write instruction to file
857
+ echo "Implement feature X" > /tmp/task.md
858
+
859
+ # Run with stdin
860
+ claudish --stdin --model grok < /tmp/task.md > /tmp/result.md
861
+
862
+ # Read result
863
+ cat /tmp/result.md
864
+ ```
865
+
866
+ ### 2. ✅ Choose Right Model for Task
867
+
868
+ **Fast Coding:** `x-ai/grok-code-fast-1`
869
+ **Complex Reasoning:** `google/gemini-2.5-flash` or `openai/gpt-5`
870
+ **Vision/UI:** `qwen/qwen3-vl-235b-a22b-instruct`
871
+
872
+ ### 3. ✅ Use --json for Automation
873
+
874
+ **Why:** Structured output, easier parsing
875
+
876
+ **How:**
877
+ ```bash
878
+ RESULT=$(claudish --json "task" | jq -r '.result')
879
+ COST=$(claudish --json "task" | jq -r '.total_cost_usd')
880
+ ```
881
+
882
+ ### 4. ✅ Delegate to Sub-Agents
883
+
884
+ **Why:** Keeps main conversation context clean
885
+
886
+ **How:**
887
+ ```typescript
888
+ await Task({
889
+ subagent_type: "general-purpose",
890
+ description: "Task with Claudish",
891
+ prompt: "Use claudish --model grok '...' and return summary only"
892
+ });
893
+ ```
894
+
895
+ ### 5. ✅ Update Models Regularly
896
+
897
+ **Why:** Get latest model recommendations
898
+
899
+ **How:**
900
+ ```bash
901
+ # Auto-updates every 2 days
902
+ claudish --models
903
+
904
+ # Search for specific models
905
+ claudish --models deepseek
906
+
907
+ # Force update now
908
+ claudish --models --force-update
909
+ ```
910
+
911
+ ### 6. ✅ Use --stdin for Large Prompts
912
+
913
+ **Why:** Avoid command line length limits
914
+
915
+ **How:**
916
+ ```bash
917
+ git diff | claudish --stdin --model grok "Review changes"
918
+ ```
919
+
920
+ ## Anti-Patterns (Avoid These)
921
+
922
+ ### ❌❌❌ NEVER Run Claudish Directly in Main Conversation (CRITICAL)
923
+
924
+ **This is the #1 mistake. Never do this unless user explicitly requests it.**
925
+
926
+ **WRONG - Destroys context window:**
927
+ ```typescript
928
+ // ❌ NEVER DO THIS - Pollutes main context with 10K+ tokens
929
+ await Bash("claudish --model grok 'implement feature'");
930
+
931
+ // ❌ NEVER DO THIS - Full conversation in main context
932
+ await Bash("claudish --model gemini 'review code'");
933
+
934
+ // ❌ NEVER DO THIS - Even with --json, output is huge
935
+ const result = await Bash("claudish --json --model gpt-5 'refactor'");
936
+ ```
937
+
938
+ **RIGHT - Always use sub-agents:**
939
+ ```typescript
940
+ // ✅ ALWAYS DO THIS - Delegate to sub-agent
941
+ const result = await Task({
942
+ subagent_type: "general-purpose", // or specific agent
943
+ description: "Implement feature with Grok",
944
+ prompt: `
945
+ Use Claudish to implement the feature with Grok model.
946
+
947
+ CRITICAL INSTRUCTIONS:
948
+ 1. Create instruction file: /tmp/claudish-task-${Date.now()}.md
949
+ 2. Write detailed task requirements to file
950
+ 3. Run: claudish --model x-ai/grok-code-fast-1 --stdin < /tmp/claudish-task-*.md
951
+ 4. Read result file and return ONLY a 2-3 sentence summary
952
+
953
+ DO NOT return full implementation or conversation.
954
+ Keep response under 300 tokens.
955
+ `
956
+ });
957
+
958
+ // ✅ Even better - Use specialized agent if available
959
+ const result = await Task({
960
+ subagent_type: "backend-developer", // or frontend-dev, etc.
961
+ description: "Implement with external model",
962
+ prompt: `
963
+ Use Claudish with x-ai/grok-code-fast-1 model to implement authentication.
964
+ Follow file-based instruction pattern.
965
+ Return summary only.
966
+ `
967
+ });
968
+ ```
969
+
970
+ **When you CAN run directly (rare exceptions):**
971
+ ```typescript
972
+ // ✅ Only when user explicitly requests
973
+ // User: "Run claudish directly in main context for debugging"
974
+ if (userExplicitlyRequestedDirect) {
975
+ await Bash("claudish --model grok 'task'");
976
+ }
977
+ ```
978
+
979
+ ### ❌ Don't Ignore Model Selection
980
+
981
+ **Wrong:**
982
+ ```bash
983
+ # Always using default model
984
+ claudish "any task"
985
+ ```
986
+
987
+ **Right:**
988
+ ```bash
989
+ # Choose appropriate model
990
+ claudish --model x-ai/grok-code-fast-1 "quick fix"
991
+ claudish --model google/gemini-2.5-flash "complex analysis"
992
+ ```
993
+
994
+ ### ❌ Don't Parse Text Output
995
+
996
+ **Wrong:**
997
+ ```bash
998
+ OUTPUT=$(claudish --model grok "task")
999
+ COST=$(echo "$OUTPUT" | grep cost | awk '{print $2}')
1000
+ ```
1001
+
1002
+ **Right:**
1003
+ ```bash
1004
+ # Use JSON output
1005
+ COST=$(claudish --json --model grok "task" | jq -r '.total_cost_usd')
1006
+ ```
1007
+
1008
+ ### ❌ Don't Hardcode Model Lists
1009
+
1010
+ **Wrong:**
1011
+ ```typescript
1012
+ const MODELS = ["x-ai/grok-code-fast-1", "openai/gpt-5.3"];
1013
+ ```
1014
+
1015
+ **Right:**
1016
+ ```typescript
1017
+ // Query dynamically
1018
+ const { stdout } = await Bash("claudish --models --json");
1019
+ const models = JSON.parse(stdout).models.map(m => m.id);
1020
+ ```
1021
+
1022
+ ### ✅ Do Accept Custom Models From Users
1023
+
1024
+ **Problem:** User provides a custom model ID that's not in --top-models
1025
+
1026
+ **Wrong (rejecting custom models):**
1027
+ ```typescript
1028
+ const availableModels = ["x-ai/grok-code-fast-1", "openai/gpt-5.3"];
1029
+ const userModel = "custom/provider/model-123";
1030
+
1031
+ if (!availableModels.includes(userModel)) {
1032
+ throw new Error("Model not in my shortlist"); // ❌ DON'T DO THIS
1033
+ }
1034
+ ```
1035
+
1036
+ **Right (accept any valid model ID):**
1037
+ ```typescript
1038
+ // Claudish accepts ANY valid OpenRouter model ID, even if not in --top-models
1039
+ const userModel = "custom/provider/model-123";
1040
+
1041
+ // Validate it's a non-empty string with provider format
1042
+ if (!userModel.includes("/")) {
1043
+ console.warn("Model should be in format: provider/model-name");
1044
+ }
1045
+
1046
+ // Use it directly - Claudish will validate with OpenRouter
1047
+ await Bash(`claudish --model ${userModel} "task"`);
1048
+ ```
1049
+
1050
+ **Why:** Users may have access to:
1051
+ - Beta/experimental models
1052
+ - Private/custom fine-tuned models
1053
+ - Newly released models not yet in rankings
1054
+ - Regional/enterprise models
1055
+ - Cost-saving alternatives
1056
+
1057
+ **Always accept user-provided model IDs** unless they're clearly invalid (empty, wrong format).
1058
+
1059
+ ### ✅ Do Handle User-Preferred Models
1060
+
1061
+ **Scenario:** User says "use my custom model X" and expects it to be remembered
1062
+
1063
+ **Solution 1: Environment Variable (Recommended)**
1064
+ ```typescript
1065
+ // Set for the session
1066
+ process.env.CLAUDISH_MODEL = userPreferredModel;
1067
+
1068
+ // Or set permanently in user's shell profile
1069
+ await Bash(`echo 'export CLAUDISH_MODEL="${userPreferredModel}"' >> ~/.zshrc`);
1070
+ ```
1071
+
1072
+ **Solution 2: Session Cache**
1073
+ ```typescript
1074
+ // Store in a temporary session file
1075
+ const sessionFile = "/tmp/claudish-user-preferences.json";
1076
+ const prefs = {
1077
+ preferredModel: userPreferredModel,
1078
+ lastUsed: new Date().toISOString()
1079
+ };
1080
+ await Write({ file_path: sessionFile, content: JSON.stringify(prefs, null, 2) });
1081
+
1082
+ // Load in subsequent commands
1083
+ const { stdout } = await Read({ file_path: sessionFile });
1084
+ const prefs = JSON.parse(stdout);
1085
+ const model = prefs.preferredModel || defaultModel;
1086
+ ```
1087
+
1088
+ **Solution 3: Prompt Once, Remember for Session**
1089
+ ```typescript
1090
+ // In a multi-step workflow, ask once
1091
+ if (!process.env.CLAUDISH_MODEL) {
1092
+ const { stdout } = await Bash("claudish --models --json");
1093
+ const models = JSON.parse(stdout).models;
1094
+
1095
+ const response = await AskUserQuestion({
1096
+ question: "Select model (or enter custom model ID):",
1097
+ options: models.map((m, i) => ({ label: m.name, value: m.id })).concat([
1098
+ { label: "Enter custom model...", value: "custom" }
1099
+ ])
1100
+ });
1101
+
1102
+ if (response === "custom") {
1103
+ const customModel = await AskUserQuestion({
1104
+ question: "Enter OpenRouter model ID (format: provider/model):"
1105
+ });
1106
+ process.env.CLAUDISH_MODEL = customModel;
1107
+ } else {
1108
+ process.env.CLAUDISH_MODEL = response;
1109
+ }
1110
+ }
1111
+
1112
+ // Use the selected model for all subsequent calls
1113
+ const model = process.env.CLAUDISH_MODEL;
1114
+ await Bash(`claudish --model ${model} "task 1"`);
1115
+ await Bash(`claudish --model ${model} "task 2"`);
1116
+ ```
1117
+
1118
+ **Guidance for Agents:**
1119
+ 1. ✅ **Accept any model ID** user provides (unless obviously malformed)
1120
+ 2. ✅ **Don't filter** based on your "shortlist" - let Claudish handle validation
1121
+ 3. ✅ **Offer to set CLAUDISH_MODEL** environment variable for session persistence
1122
+ 4. ✅ **Explain** that --top-models shows curated recommendations, --models shows all
1123
+ 5. ✅ **Validate format** (should contain "/") but not restrict to known models
1124
+ 6. ❌ **Never reject** a user's custom model with "not in my shortlist"
1125
+
1126
+ ### ❌ Don't Skip Error Handling
1127
+
1128
+ **Wrong:**
1129
+ ```typescript
1130
+ const result = await Bash("claudish --model grok 'task'");
1131
+ ```
1132
+
1133
+ **Right:**
1134
+ ```typescript
1135
+ try {
1136
+ const result = await Bash("claudish --model grok 'task'");
1137
+ } catch (error) {
1138
+ console.error("Claudish failed:", error.message);
1139
+ // Fallback to embedded Claude or handle error
1140
+ }
1141
+ ```
1142
+
1143
+ ## Agent Integration Examples
1144
+
1145
+ ### Example 1: Code Review Agent
1146
+
1147
+ ```typescript
1148
+ /**
1149
+ * Agent: code-reviewer (using Claudish with multiple models)
1150
+ */
1151
+ async function reviewCodeWithMultipleModels(files: string[]) {
1152
+ const models = [
1153
+ "x-ai/grok-code-fast-1", // Fast initial scan
1154
+ "google/gemini-2.5-flash", // Deep analysis
1155
+ "openai/gpt-5.3" // Final validation
1156
+ ];
1157
+
1158
+ const reviews = [];
1159
+
1160
+ for (const model of models) {
1161
+ const timestamp = Date.now();
1162
+ const instructionFile = `/tmp/review-${model.replace('/', '-')}-${timestamp}.md`;
1163
+ const resultFile = `/tmp/review-result-${model.replace('/', '-')}-${timestamp}.md`;
1164
+
1165
+ // Create instruction
1166
+ const instruction = createReviewInstruction(files, resultFile);
1167
+ await Write({ file_path: instructionFile, content: instruction });
1168
+
1169
+ // Run review with model
1170
+ await Bash(`claudish --model ${model} --stdin < ${instructionFile}`);
1171
+
1172
+ // Read result
1173
+ const result = await Read({ file_path: resultFile });
1174
+
1175
+ // Extract summary
1176
+ reviews.push({
1177
+ model,
1178
+ summary: extractSummary(result),
1179
+ issueCount: extractIssueCount(result)
1180
+ });
1181
+
1182
+ // Clean up
1183
+ await Bash(`rm ${instructionFile} ${resultFile}`);
1184
+ }
1185
+
1186
+ return reviews;
1187
+ }
1188
+ ```
1189
+
1190
+ ### Example 2: Feature Implementation Command
1191
+
1192
+ ```typescript
1193
+ /**
1194
+ * Command: /implement-with-model
1195
+ * Usage: /implement-with-model "feature description"
1196
+ */
1197
+ async function implementWithModel(featureDescription: string) {
1198
+ // Step 1: Get available models
1199
+ const { stdout } = await Bash("claudish --models --json");
1200
+ const models = JSON.parse(stdout).models;
1201
+
1202
+ // Step 2: Let user select model
1203
+ const selectedModel = await promptUserForModel(models);
1204
+
1205
+ // Step 3: Create instruction file
1206
+ const timestamp = Date.now();
1207
+ const instructionFile = `/tmp/implement-${timestamp}.md`;
1208
+ const resultFile = `/tmp/implement-result-${timestamp}.md`;
1209
+
1210
+ const instruction = `# Feature Implementation
1211
+
1212
+ ## Description
1213
+ ${featureDescription}
1214
+
1215
+ ## Requirements
1216
+ - Write clean, maintainable code
1217
+ - Add comprehensive tests
1218
+ - Include error handling
1219
+ - Follow project conventions
1220
+
1221
+ ## Output
1222
+ Write implementation details to: ${resultFile}
1223
+
1224
+ Include:
1225
+ - Files created/modified
1226
+ - Code snippets
1227
+ - Test coverage
1228
+ - Documentation updates
1229
+ `;
1230
+
1231
+ await Write({ file_path: instructionFile, content: instruction });
1232
+
1233
+ // Step 4: Run implementation
1234
+ await Bash(`claudish --model ${selectedModel} --stdin < ${instructionFile}`);
1235
+
1236
+ // Step 5: Read and present results
1237
+ const result = await Read({ file_path: resultFile });
1238
+
1239
+ // Step 6: Clean up
1240
+ await Bash(`rm ${instructionFile} ${resultFile}`);
1241
+
1242
+ return result;
1243
+ }
1244
+ ```
1245
+
1246
+ ## Troubleshooting
1247
+
1248
+ ### Issue: Slow Performance
1249
+
1250
+ **Symptoms:** Claudish takes long time to respond
1251
+
1252
+ **Solutions:**
1253
+ 1. Use faster model: `x-ai/grok-code-fast-1` or `minimax/minimax-m2`
1254
+ 2. Reduce prompt size (use --stdin with concise instructions)
1255
+ 3. Check internet connection to OpenRouter
1256
+
1257
+ ### Issue: High Costs
1258
+
1259
+ **Symptoms:** Unexpected API costs
1260
+
1261
+ **Solutions:**
1262
+ 1. Use budget-friendly models (check pricing with `--models` or `--top-models`)
1263
+ 2. Enable cost tracking: `--cost-tracker`
1264
+ 3. Use --json to monitor costs: `claudish --json "task" | jq '.total_cost_usd'`
1265
+
1266
+ ### Issue: Context Window Exceeded
1267
+
1268
+ **Symptoms:** Error about token limits
1269
+
1270
+ **Solutions:**
1271
+ 1. Use model with larger context (Gemini: 1000K, Grok: 256K)
1272
+ 2. Break task into smaller subtasks
1273
+ 3. Use file-based pattern to avoid conversation history
1274
+
1275
+ ### Issue: Model Not Available
1276
+
1277
+ **Symptoms:** "Model not found" error
1278
+
1279
+ **Solutions:**
1280
+ 1. Update model cache: `claudish --models --force-update`
1281
+ 2. Check OpenRouter website for model availability
1282
+ 3. Use alternative model from same category
1283
+
1284
+ ## Additional Resources
1285
+
1286
+ **Documentation:**
1287
+ - Full README: `mcp/claudish/README.md` (in repository root)
1288
+ - AI Agent Guide: Print with `claudish --help-ai`
1289
+ - Model Integration: `skills/claudish-integration/SKILL.md` (in repository root)
1290
+
1291
+ **External Links:**
1292
+ - Claudish GitHub: https://github.com/MadAppGang/claude-code
1293
+ - OpenRouter: https://openrouter.ai
1294
+ - OpenRouter Models: https://openrouter.ai/models
1295
+ - OpenRouter API Docs: https://openrouter.ai/docs
1296
+
1297
+ **Version Information:**
1298
+ ```bash
1299
+ claudish --version
1300
+ ```
1301
+
1302
+ **Get Help:**
1303
+ ```bash
1304
+ claudish --help # CLI usage
1305
+ claudish --help-ai # AI agent usage guide
1306
+ ```
1307
+
1308
+ ---
1309
+
1310
+ **Maintained by:** MadAppGang
1311
+ **Last Updated:** January 5, 2026
1312
+ **Skill Version:** 2.0.0