llm-cli-council 1.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,15 @@
1
+ {
2
+ "name": "llm-cli-council-dev",
3
+ "owner": {
4
+ "name": "GuitaristForEver"
5
+ },
6
+ "description": "Development marketplace for testing llm-cli-council plugin",
7
+ "plugins": [
8
+ {
9
+ "name": "llm-cli-council",
10
+ "source": "./",
11
+ "version": "1.0.0",
12
+ "description": "Get diverse AI perspectives on implementation plans and code reviews"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "llm-cli-council",
3
+ "version": "1.0.0",
4
+ "description": "Get diverse AI perspectives on implementation plans and code reviews by orchestrating multiple LLM CLIs (Claude, Copilot, Codex, Gemini, Ollama) through a council approach",
5
+ "author": {
6
+ "name": "GuitaristForEver",
7
+ "url": "https://github.com/GuitaristForEver/llm-cli-council"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/GuitaristForEver/llm-cli-council.git"
12
+ },
13
+ "license": "MIT",
14
+ "keywords": [
15
+ "llm",
16
+ "council",
17
+ "code-review",
18
+ "plan-review",
19
+ "multi-model",
20
+ "delegation",
21
+ "codex",
22
+ "copilot",
23
+ "gemini",
24
+ "ollama"
25
+ ],
26
+ "skills": [
27
+ {
28
+ "name": "llm-cli-council",
29
+ "path": "./skills/llm-cli-council.md",
30
+ "description": "Main orchestration skill for multi-LLM council"
31
+ },
32
+ {
33
+ "name": "llm-cli-council:setup",
34
+ "path": "./skills/setup.md",
35
+ "description": "Detect and configure available LLM CLIs"
36
+ },
37
+ {
38
+ "name": "llm-cli-council:status",
39
+ "path": "./skills/status.md",
40
+ "description": "Show council configuration and provider status"
41
+ },
42
+ {
43
+ "name": "llm-cli-council:review-plan",
44
+ "path": "./skills/review-plan.md",
45
+ "description": "Get council review of implementation plans"
46
+ },
47
+ {
48
+ "name": "llm-cli-council:review-code",
49
+ "path": "./skills/review-code.md",
50
+ "description": "Get council review of code changes"
51
+ },
52
+ {
53
+ "name": "llm-cli-council:uninstall",
54
+ "path": "./skills/uninstall.md",
55
+ "description": "Remove council configuration and rules"
56
+ }
57
+ ],
58
+ "engines": {
59
+ "claude-code": ">=0.1.0"
60
+ }
61
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 LLM CLI Council Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,495 @@
1
+ # LLM CLI Council
2
+
3
+ > **Get diverse AI perspectives on your implementation plans and code reviews**
4
+
5
+ A Claude Code skill that orchestrates multiple LLM command-line tools (Claude, Copilot, Codex, Gemini, Ollama) to provide comprehensive feedback through a "council" approach. Claude acts as Chairman, synthesizing insights from multiple AI assistants into clear, actionable guidance.
6
+
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-blue)](https://github.com/username/llm-cli-council)
9
+
10
+ > **Inspired by:** [karpathy/llm-council](https://github.com/karpathy/llm-council) for the council orchestration concept and [jarrodwatts/claude-delegator](https://github.com/jarrodwatts/claude-delegator) for multi-model delegation patterns.
11
+
12
+ ---
13
+
14
+ ## Why Use a Council?
15
+
16
+ Single LLMs can be biased toward certain solutions. By consulting multiple AI assistants:
17
+
18
+ - **🎯 Diverse perspectives** catch blind spots and assumptions
19
+ - **✅ Consensus** builds confidence in recommendations
20
+ - **⚠️ Dissent** highlights areas needing careful consideration
21
+ - **📊 Better coverage** different models excel at different tasks
22
+
23
+ ### The Anti-Paralysis Principle
24
+
25
+ The council **never overwhelms** with conflicting advice. Instead, it:
26
+
27
+ - ✨ Synthesizes into **max 5 prioritized recommendations**
28
+ - 🎓 Resolves conflicts with **clear reasoning**
29
+ - ✅ Always provides a **decisive verdict**: APPROVE or REQUEST CHANGES
30
+
31
+ No endless debate. Just actionable guidance.
32
+
33
+ ---
34
+
35
+ ## Features
36
+
37
+ - 🤝 **Multi-LLM orchestration** - Coordinates Claude, Copilot, Codex, Gemini, and Ollama
38
+ - 🎭 **Independent reviews** - Each provider reviews without seeing others' opinions
39
+ - ⚡ **Parallel execution** - All providers run simultaneously for speed
40
+ - 🪑 **Chairman synthesis** - Claude resolves conflicts and provides final verdict
41
+ - 🔒 **Privacy mode** - Local-only execution with Ollama (no data leaves your machine)
42
+ - 📈 **Smart routing** - Automatically selects best providers for each task type
43
+ - 🔧 **Configurable modes** - Quick (2 providers), Full (all providers), or Privacy (local only)
44
+ - 🌍 **Cross-platform** - Works on macOS, Linux, and Windows (WSL)
45
+
46
+ ---
47
+
48
+ ## Quick Start
49
+
50
+ Get your first council review in **5 minutes**:
51
+
52
+ ```bash
53
+ # 1. Install the plugin
54
+ claude /plugin marketplace add GuitaristForEver/llm-cli-council
55
+ claude /plugin install llm-cli-council
56
+
57
+ # Restart Claude Code after installation
58
+
59
+ # 2. Setup and detect your LLM CLI tools
60
+ /llm-cli-council:setup
61
+
62
+ # 3. Review a plan
63
+ /llm-cli-council:review-plan PLAN.md
64
+ ```
65
+
66
+ That's it! You'll get synthesized feedback from multiple AI perspectives.
67
+
68
+ ---
69
+
70
+ ## Installation
71
+
72
+ ```bash
73
+ npx llm-cli-council
74
+ ```
75
+
76
+ This will detect your Claude Code directory and install the plugin files automatically.
77
+
78
+ **Options:**
79
+ - `npx llm-cli-council --dry-run` — preview what will be installed
80
+ - `npx llm-cli-council --yes` — skip the confirmation prompt
81
+
82
+ **Manual install:** If you prefer, copy files directly:
83
+
84
+ ```bash
85
+ git clone https://github.com/GuitaristForEver/llm-cli-council
86
+ cd llm-cli-council
87
+ cp -r skills/* ~/.claude/skills/
88
+ cp -r lib ~/.claude/lib/
89
+ cp -r prompts ~/.claude/prompts/
90
+ cp -r rules ~/.claude/rules/
91
+ cp config/providers.json ~/.claude/config/
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Available Commands
97
+
98
+ | Command | Description |
99
+ |---------|-------------|
100
+ | `/llm-cli-council:setup` | Detect and configure available LLM CLIs |
101
+ | `/llm-cli-council:review-plan` | Get council review of an implementation plan |
102
+ | `/llm-cli-council:review-code` | Get council review of code changes |
103
+ | `/llm-cli-council:status` | Show council configuration and provider status |
104
+ | `/llm-cli-council:uninstall` | Remove council configuration |
105
+
106
+ ---
107
+
108
+ ## Basic Usage
109
+
110
+ ### Review an Implementation Plan
111
+
112
+ ```bash
113
+ # Review with default (quick) mode - 2 best providers
114
+ /llm-cli-council:review-plan
115
+
116
+ # Review specific plan file
117
+ /llm-cli-council:review-plan path/to/PLAN.md
118
+
119
+ # Use all available providers (comprehensive review)
120
+ /llm-cli-council:review-plan --mode=full
121
+
122
+ # Privacy mode - only local Ollama (no data sent externally)
123
+ /llm-cli-council:review-plan --mode=privacy
124
+ ```
125
+
126
+ ### Review Code Changes
127
+
128
+ ```bash
129
+ # Review staged changes
130
+ /llm-cli-council:review-code
131
+
132
+ # Review last commit
133
+ /llm-cli-council:review-code HEAD
134
+
135
+ # Review specific file
136
+ /llm-cli-council:review-code src/app.js
137
+
138
+ # Review range of commits
139
+ /llm-cli-council:review-code main..HEAD --mode=full
140
+ ```
141
+
142
+ ### Check Configuration
143
+
144
+ ```bash
145
+ # Show current configuration
146
+ /llm-cli-council:status
147
+
148
+ # Re-check provider availability
149
+ /llm-cli-council:status --check
150
+ ```
151
+
152
+ ---
153
+
154
+ ## Council Modes
155
+
156
+ The council operates in three modes, each balancing speed, comprehensiveness, and privacy:
157
+
158
+ | Mode | Providers Used | Use Case | Speed |
159
+ |------|----------------|----------|-------|
160
+ | **quick** (default) | 2 best-match providers | Most reviews, fast feedback | ⚡⚡⚡ Fast |
161
+ | **full** | All available providers | High-stakes decisions, comprehensive analysis | ⚡⚡ Slower |
162
+ | **privacy** | Ollama only | Sensitive code, air-gapped environments | ⚡⚡⚡ Fast |
163
+
164
+ **Mode selection example:**
165
+
166
+ ```bash
167
+ # Quick mode (default) - 2 providers, ~30-60 seconds
168
+ /llm-cli-council:review-plan
169
+
170
+ # Full mode - all providers, ~60-120 seconds
171
+ /llm-cli-council:review-plan --mode=full
172
+
173
+ # Privacy mode - local only, ~30-90 seconds
174
+ /llm-cli-council:review-plan --mode=privacy
175
+ ```
176
+
177
+ ---
178
+
179
+ ## Supported Providers
180
+
181
+ The council supports the following LLM CLI tools:
182
+
183
+ | Provider | CLI Command | Installation | Strengths |
184
+ |----------|-------------|--------------|-----------|
185
+ | **Claude** | `claude` | [Claude Code](https://github.com/anthropics/claude-code) | Reasoning, analysis, synthesis, planning |
186
+ | **Copilot** | `copilot` | `npm install -g @github/copilot-cli` | Code generation, GitHub integration |
187
+ | **Codex** | `codex` | [OpenAI Codex CLI](https://github.com/openai/codex-cli) | Code analysis, debugging, implementation |
188
+ | **Gemini** | `gemini` | [Gemini CLI](https://github.com/google/gemini-cli) | Multimodal analysis, broad knowledge |
189
+ | **Ollama** | `ollama` | [Ollama](https://ollama.ai) | Privacy, offline, local execution |
190
+
191
+ **Minimum requirement:** At least **2 providers** for meaningful council feedback.
192
+ **Recommendation:** Install 3-5 providers for diverse perspectives.
193
+
194
+ ### Provider Setup
195
+
196
+ Each provider requires separate installation and authentication:
197
+
198
+ 1. **Install the CLI tool** (see links above)
199
+ 2. **Authenticate** (follow provider-specific instructions)
200
+ 3. **Run setup:** `/llm-cli-council:setup`
201
+ 4. **Verify:** `/llm-cli-council:status`
202
+
203
+ For detailed setup instructions, see [Provider Setup Guide](docs/provider-setup.md).
204
+
205
+ ---
206
+
207
+ ## Configuration
208
+
209
+ The council uses environment variables for flexible configuration:
210
+
211
+ ### Environment Variables
212
+
213
+ | Variable | Default | Description |
214
+ |----------|---------|-------------|
215
+ | `CLAUDE_COUNCIL_CONFIG_DIR` | `~/.config/claude/council/` | Config directory location |
216
+ | `CLAUDE_COUNCIL_CONFIG_FILE` | `$CONFIG_DIR/config.json` | Specific config file override |
217
+ | `CLAUDE_COUNCIL_LOG_DIR` | `$CONFIG_DIR/logs/` | Log directory |
218
+ | `CLAUDE_SKILLS_DIR` | `~/.claude/skills/` | Skills installation directory |
219
+ | `CLAUDE_CONFIG_DIR` | `~/.claude/` | Claude's main config directory |
220
+
221
+ ### Path Resolution Priority
222
+
223
+ When locating configuration, the council checks in this order:
224
+
225
+ 1. `$CLAUDE_COUNCIL_CONFIG_DIR` (explicit override)
226
+ 2. `$CLAUDE_CONFIG_DIR/council/` (Claude config + council subdir)
227
+ 3. `$XDG_CONFIG_HOME/claude/council/` (XDG standard on Linux)
228
+ 4. `~/.config/claude/council/` (XDG fallback)
229
+ 5. `~/.claude/council/` (legacy compatibility)
230
+
231
+ ### Configuration File
232
+
233
+ After running setup, your configuration is stored at `$COUNCIL_CONFIG_FILE`:
234
+
235
+ ```json
236
+ {
237
+ "version": "1.0.0",
238
+ "providers": {
239
+ "claude": {
240
+ "available": true,
241
+ "path": "/usr/local/bin/claude",
242
+ "authenticated": true
243
+ },
244
+ "codex": {
245
+ "available": true,
246
+ "path": "/usr/local/bin/codex",
247
+ "authenticated": true
248
+ }
249
+ },
250
+ "defaultMode": "quick"
251
+ }
252
+ ```
253
+
254
+ For detailed configuration options, see [Configuration Guide](docs/configuration.md).
255
+
256
+ ---
257
+
258
+ ## How It Works
259
+
260
+ The council uses a **three-stage deliberation process**:
261
+
262
+ ```
263
+ ┌─────────────────────────────────────────────────────────┐
264
+ │ Stage 1: Independent Review │
265
+ ├─────────────────────────────────────────────────────────┤
266
+ │ • Execute prompts in parallel across providers │
267
+ │ • Each provider reviews independently │
268
+ │ • No cross-contamination of opinions │
269
+ └─────────────────────────────────────────────────────────┘
270
+
271
+ ┌─────────────────────────────────────────────────────────┐
272
+ │ Stage 2: Collection & Analysis │
273
+ ├─────────────────────────────────────────────────────────┤
274
+ │ • Gather all provider responses │
275
+ │ • Extract key recommendations │
276
+ │ • Identify consensus and dissent │
277
+ └─────────────────────────────────────────────────────────┘
278
+
279
+ ┌─────────────────────────────────────────────────────────┐
280
+ │ Stage 3: Chairman Synthesis (Claude) │
281
+ ├─────────────────────────────────────────────────────────┤
282
+ │ • Synthesize into max 5 prioritized recommendations │
283
+ │ • Resolve conflicts with clear reasoning │
284
+ │ • Provide decisive verdict: APPROVE / REQUEST CHANGES │
285
+ └─────────────────────────────────────────────────────────┘
286
+ ```
287
+
288
+ ### Why Claude as Chairman?
289
+
290
+ Claude serves as Chairman because:
291
+ - **Context retention** - Best at synthesizing multiple perspectives
292
+ - **Reasoning depth** - Excels at explaining trade-offs and resolutions
293
+ - **Clarity** - Provides decisive, actionable guidance without paralysis
294
+
295
+ ---
296
+
297
+ ## Examples
298
+
299
+ ### Example: Plan Review Output
300
+
301
+ ```
302
+ ╔═══════════════════════════════════════════════════════╗
303
+ ║ LLM CLI COUNCIL REVIEW ║
304
+ ║ Plan: Implementation Plan for Feature X ║
305
+ ║ Mode: quick (2 providers) ║
306
+ ╚═══════════════════════════════════════════════════════╝
307
+
308
+ VERDICT: REQUEST CHANGES
309
+
310
+ COUNCIL SYNTHESIS
311
+ ─────────────────────────────────────────────────────────
312
+
313
+ Consensus (2/2 providers agree):
314
+ ✓ Overall approach is sound and well-structured
315
+ ✓ Clear separation of concerns
316
+ ✗ Missing error handling strategy
317
+ ✗ No consideration of database migration
318
+
319
+ TOP 5 RECOMMENDATIONS (Prioritized):
320
+
321
+ 1. [CRITICAL] Add Database Migration Strategy
322
+ • Plan lacks migration approach for schema changes
323
+ • Risk: Data loss during deployment
324
+ • Suggested: Add migration rollback plan in Phase 2
325
+
326
+ 2. [HIGH] Define Error Handling Approach
327
+ • No consistent error handling across services
328
+ • Both reviewers flagged this independently
329
+ • Suggested: Establish error handling patterns upfront
330
+
331
+ 3. [MEDIUM] Add Performance Benchmarks
332
+ • Consider load testing before production
333
+ • Codex suggests: Define acceptable latency targets
334
+
335
+ 4. [MEDIUM] Clarify Testing Strategy
336
+ • Integration tests mentioned but not detailed
337
+ • Suggested: Specify test coverage goals per phase
338
+
339
+ 5. [LOW] Documentation Plan
340
+ • Consider API documentation approach
341
+ • Minor issue, can be addressed later
342
+
343
+ REASONING:
344
+ Database migration and error handling are architectural
345
+ decisions that affect all subsequent phases. Addressing
346
+ these upfront prevents costly refactoring later. The plan
347
+ is otherwise well-structured—these additions will make it
348
+ production-ready.
349
+ ```
350
+
351
+ See more examples in the [examples/](examples/) directory.
352
+
353
+ ---
354
+
355
+ ## Troubleshooting
356
+
357
+ ### Common Issues
358
+
359
+ #### "Council not configured"
360
+
361
+ **Solution:** Run `/llm-cli-council:setup` to detect providers.
362
+
363
+ #### "No providers available"
364
+
365
+ **Cause:** No LLM CLI tools detected.
366
+
367
+ **Solution:**
368
+ 1. Install at least 2 providers (see [Supported Providers](#supported-providers))
369
+ 2. Ensure they're in your `PATH`
370
+ 3. Run `/llm-cli-council:setup` again
371
+
372
+ #### "Provider authentication failed"
373
+
374
+ **Cause:** Provider CLI not authenticated.
375
+
376
+ **Solution:**
377
+ - **Claude:** `claude auth login`
378
+ - **Copilot:** `copilot auth login`
379
+ - **Codex:** `codex auth`
380
+ - **Gemini:** `gemini auth login`
381
+ - **Ollama:** No auth needed (ensure models downloaded: `ollama pull model-name`)
382
+
383
+ #### Timeout errors
384
+
385
+ **Cause:** Provider taking too long to respond.
386
+
387
+ **Solution:**
388
+ - Check network connection
389
+ - Try `--mode=privacy` if network is slow
390
+ - Increase timeout in config (advanced)
391
+
392
+ For more troubleshooting, see [Troubleshooting Guide](docs/troubleshooting.md).
393
+
394
+ ---
395
+
396
+ ## Documentation
397
+
398
+ Comprehensive documentation is available in the `docs/` directory:
399
+
400
+ - **[Installation Guide](docs/installation.md)** - Detailed installation instructions
401
+ - **[Configuration Reference](docs/configuration.md)** - All configuration options explained
402
+ - **[Provider Setup](docs/provider-setup.md)** - Step-by-step setup for each provider
403
+ - **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions
404
+ - **[Architecture](docs/architecture.md)** - How the council works internally
405
+
406
+ ---
407
+
408
+ ## Contributing
409
+
410
+ We welcome contributions! Here's how you can help:
411
+
412
+ ### Ways to Contribute
413
+
414
+ - 🐛 **Report bugs** - Open an issue with reproduction steps
415
+ - 💡 **Suggest features** - Share your ideas in discussions
416
+ - 📝 **Improve docs** - Fix typos, add examples, clarify instructions
417
+ - 🔧 **Add providers** - Support additional LLM CLI tools
418
+ - ✨ **Submit PRs** - Fix bugs or implement features
419
+
420
+ ### Development Setup
421
+
422
+ ```bash
423
+ # Clone repository
424
+ git clone https://github.com/GuitaristForEver/llm-cli-council.git
425
+ cd llm-cli-council
426
+
427
+ # Install as local plugin
428
+ claude /plugin marketplace add .
429
+ claude /plugin install llm-cli-council@llm-cli-council-dev
430
+
431
+ # Restart Claude Code
432
+
433
+ # Make changes to skills/, prompts/, or rules/
434
+
435
+ # Test your changes
436
+ /llm-cli-council:setup
437
+ /llm-cli-council:review-plan test/fixtures/sample-plan.md
438
+
439
+ # To reload changes: uninstall and reinstall
440
+ claude /plugin uninstall llm-cli-council@llm-cli-council-dev
441
+ claude /plugin install llm-cli-council@llm-cli-council-dev
442
+ ```
443
+
444
+ ### Adding a New Provider
445
+
446
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for step-by-step instructions on adding support for new LLM CLI tools.
447
+
448
+ ---
449
+
450
+ ## Roadmap
451
+
452
+ ### v1.1.0 (Next Release)
453
+
454
+ - [ ] GitHub Action for automated PR reviews
455
+ - [ ] Customizable provider weights and priorities
456
+ - [ ] Review history and analytics
457
+ - [ ] Support for custom prompt templates
458
+
459
+ ### Future
460
+
461
+ - [ ] Web UI for review visualization
462
+ - [ ] Docker container with pre-installed providers
463
+ - [ ] VS Code extension
464
+ - [ ] npm package distribution
465
+ - [ ] Multi-language support
466
+
467
+ ---
468
+
469
+ ## License
470
+
471
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
472
+
473
+ ---
474
+
475
+ ## Acknowledgments
476
+
477
+ - **Anthropic** for Claude and Claude Code CLI
478
+ - **GitHub** for Copilot CLI
479
+ - **OpenAI** for Codex
480
+ - **Google** for Gemini
481
+ - **Ollama** team for local LLM infrastructure
482
+
483
+ Special thanks to the open source community for feedback and contributions.
484
+
485
+ ---
486
+
487
+ ## Support
488
+
489
+ - **Issues:** [GitHub Issues](https://github.com/username/llm-cli-council/issues)
490
+ - **Discussions:** [GitHub Discussions](https://github.com/username/llm-cli-council/discussions)
491
+ - **Documentation:** [docs/](docs/)
492
+
493
+ ---
494
+
495
+ **Built with ❤️ for developers who value diverse perspectives**