loki-mode 6.5.0 → 6.6.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.
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  [![Agent Types](https://img.shields.io/badge/Agent%20Types-41-blue)]()
10
10
  [![Autonomi](https://img.shields.io/badge/Autonomi-autonomi.dev-5B4EEA)](https://www.autonomi.dev/)
11
11
 
12
- **Current Version: v6.5.0**
12
+ **Current Version: v6.6.0**
13
13
 
14
14
  ---
15
15
 
@@ -36,7 +36,7 @@ Every iteration follows the **RARV cycle**: Reason (read state, identify next ta
36
36
  | **Code Generation** | Full-stack apps from PRDs | Complex domain logic may need human review |
37
37
  | **Deployment** | Generates configs, Dockerfiles, CI/CD workflows | Does not deploy -- human provides cloud credentials and runs deploy |
38
38
  | **Testing** | 9 automated quality gates, blind review | Test quality depends on AI-generated assertions |
39
- | **Multi-Provider** | Claude (full), Codex/Gemini (sequential only) | Codex and Gemini lack parallel agents and Task tool |
39
+ | **Multi-Provider** | Claude (full), Codex/Gemini/Cline/Aider (sequential only) | Non-Claude providers lack parallel agents and Task tool |
40
40
  | **Enterprise** | TLS, OIDC, RBAC, audit trail | Self-signed certs only; some features require env var activation |
41
41
  | **Dashboard** | Real-time status, task queue, agents | Single-machine only; no multi-node clustering |
42
42
 
@@ -44,7 +44,7 @@ Every iteration follows the **RARV cycle**: Reason (read state, identify next ta
44
44
 
45
45
  ## Quick Start
46
46
 
47
- **Requirements:** Node.js 18+, Python 3.8+, macOS/Linux/WSL2, and at least one AI CLI (Claude Code, Codex, or Gemini).
47
+ **Requirements:** Node.js 18+, Python 3.8+, macOS/Linux/WSL2, and at least one AI CLI (Claude Code, Codex, Gemini, Cline, or Aider).
48
48
 
49
49
  ### CLI Mode
50
50
 
@@ -129,7 +129,7 @@ See [full architecture documentation](docs/enterprise/architecture.md) for the d
129
129
  | **Quality** | 9 gates: blind review, anti-sycophancy, mock/mutation detection | [Quality Gates](skills/quality-gates.md) |
130
130
  | **Dashboard** | Real-time monitoring, API v2, WebSocket, auto-starts with `loki start` | [Dashboard Guide](docs/dashboard-guide.md) |
131
131
  | **Memory** | 3-tier (episodic/semantic/procedural), knowledge graph, vector search | [Memory System](references/memory-system.md) |
132
- | **Providers** | Claude (full), Codex (sequential), Gemini (sequential) | [Provider Guide](skills/providers.md) |
132
+ | **Providers** | Claude (full), Codex/Gemini/Cline/Aider (sequential) | [Provider Guide](skills/providers.md) |
133
133
  | **Enterprise** | TLS, OIDC/SSO, RBAC, OTEL, policy engine, audit trails | [Enterprise Guide](docs/enterprise/architecture.md) |
134
134
  | **Integrations** | Jira, Slack, Teams, GitHub Actions (Linear: partial) | [Integration Cookbook](docs/enterprise/integration-cookbook.md) |
135
135
  | **Deployment** | Helm, Docker Compose, Terraform configs (AWS/Azure/GCP) | [Deployment Guide](deploy/helm/README.md) |
@@ -142,8 +142,10 @@ See [full architecture documentation](docs/enterprise/architecture.md) for the d
142
142
  | Claude Code | `npm i -g @anthropic-ai/claude-code` | `--dangerously-skip-permissions` | Yes (10+) |
143
143
  | Codex CLI | `npm i -g @openai/codex` | `--full-auto` | No (sequential) |
144
144
  | Gemini CLI | `npm i -g @google/gemini-cli` | `--approval-mode=yolo` | No (sequential) |
145
+ | Cline CLI | `npm i -g @anthropic-ai/cline` | `--auto-approve` | No (sequential) |
146
+ | Aider | `pip install aider-chat` | `--yes-always` | No (sequential) |
145
147
 
146
- Claude gets full features (subagents, parallelization, MCP, Task tool). Codex and Gemini run in sequential mode -- one agent at a time, no Task tool. See [Provider Guide](skills/providers.md) for the full comparison.
148
+ Claude gets full features (subagents, parallelization, MCP, Task tool). All other providers run in sequential mode -- one agent at a time, no Task tool. See [Provider Guide](skills/providers.md) for the full comparison.
147
149
 
148
150
  ---
149
151
 
package/SKILL.md CHANGED
@@ -3,11 +3,11 @@ name: loki-mode
3
3
  description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes PRD to deployed product with minimal human intervention. Requires --dangerously-skip-permissions flag.
4
4
  ---
5
5
 
6
- # Loki Mode v6.5.0
6
+ # Loki Mode v6.6.0
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
10
- **New in v5.0.0:** Multi-provider support (Claude/Codex/Gemini), abstract model tiers, degraded mode for non-Claude providers. See `skills/providers.md`.
10
+ **New in v5.0.0:** Multi-provider support (Claude/Codex/Gemini/Cline/Aider), abstract model tiers, degraded mode for non-Claude providers. See `skills/providers.md`.
11
11
 
12
12
  ---
13
13
 
@@ -95,7 +95,7 @@ These rules guide autonomous operation. Test results and code quality always tak
95
95
 
96
96
  **Parallelization rule (Claude only):** Launch up to 10 agents simultaneously for independent tasks.
97
97
 
98
- **Degraded mode (Codex/Gemini):** No parallel agents or Task tool. Codex has MCP support. Runs RARV cycle sequentially. See `skills/model-selection.md`.
98
+ **Degraded mode (Codex/Gemini/Cline/Aider):** No parallel agents or Task tool. Codex has MCP support. Runs RARV cycle sequentially. See `skills/model-selection.md`.
99
99
 
100
100
  **Git worktree parallelism:** For true parallel feature development, use `--parallel` flag with run.sh. See `skills/parallel-workflows.md`.
101
101
 
@@ -187,6 +187,8 @@ claude --dangerously-skip-permissions
187
187
  ./autonomy/run.sh --provider claude ./prd.md # Default, full features
188
188
  ./autonomy/run.sh --provider codex ./prd.json # GPT-5.3 Codex, degraded mode
189
189
  ./autonomy/run.sh --provider gemini ./prd.md # Gemini 3 Pro, degraded mode
190
+ ./autonomy/run.sh --provider cline ./prd.md # Cline CLI, degraded mode
191
+ ./autonomy/run.sh --provider aider ./prd.md # Aider (18+ providers), degraded mode
190
192
 
191
193
  # Or via CLI wrapper
192
194
  loki start --provider codex ./prd.md
@@ -199,6 +201,8 @@ loki start --provider codex ./prd.md
199
201
  - **Claude**: Opus 4.6, 1M context (beta), 128K output, adaptive thinking, agent teams, full features (Task tool, parallel agents, MCP)
200
202
  - **Codex**: GPT-5.3, 400K context, 128K output, MCP support, --full-auto mode, degraded (sequential only, no Task tool)
201
203
  - **Gemini**: Degraded mode (sequential only, no Task tool, 1M context)
204
+ - **Cline**: Multi-provider CLI, degraded mode (sequential only, no Task tool)
205
+ - **Aider**: 18+ provider backends, degraded mode (sequential only, no Task tool)
202
206
 
203
207
  ---
204
208
 
@@ -263,4 +267,4 @@ The following features are documented in skill modules but not yet fully automat
263
267
  | Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
264
268
  | Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
265
269
 
266
- **v6.5.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
270
+ **v6.6.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 6.5.0
1
+ 6.6.0
@@ -663,6 +663,8 @@ council_member_review() {
663
663
  claude) command -v claude >/dev/null 2>&1 || { log_error "Claude CLI not found"; return 1; } ;;
664
664
  codex) command -v codex >/dev/null 2>&1 || { log_error "Codex CLI not found"; return 1; } ;;
665
665
  gemini) command -v gemini >/dev/null 2>&1 || { log_error "Gemini CLI not found"; return 1; } ;;
666
+ cline) command -v cline >/dev/null 2>&1 || { log_error "Cline CLI not found"; return 1; } ;;
667
+ aider) command -v aider >/dev/null 2>&1 || { log_error "Aider not found"; return 1; } ;;
666
668
  esac
667
669
 
668
670
  local evidence
@@ -753,6 +755,16 @@ ISSUES: CRITICAL:description (optional, one per line per issue)"
753
755
  verdict=$(echo "$prompt" | gemini 2>/dev/null | tail -5)
754
756
  fi
755
757
  ;;
758
+ cline)
759
+ if command -v cline &>/dev/null; then
760
+ verdict=$(cline -y "$prompt" 2>/dev/null | tail -5)
761
+ fi
762
+ ;;
763
+ aider)
764
+ if command -v aider &>/dev/null; then
765
+ verdict=$(aider --message "$prompt" --yes-always --no-auto-commits --no-git 2>/dev/null | tail -5)
766
+ fi
767
+ ;;
756
768
  esac
757
769
 
758
770
  # Fallback: if no AI provider available, use heuristic-based review
@@ -777,6 +789,8 @@ council_devils_advocate() {
777
789
  claude) command -v claude >/dev/null 2>&1 || { log_error "Claude CLI not found"; return 1; } ;;
778
790
  codex) command -v codex >/dev/null 2>&1 || { log_error "Codex CLI not found"; return 1; } ;;
779
791
  gemini) command -v gemini >/dev/null 2>&1 || { log_error "Gemini CLI not found"; return 1; } ;;
792
+ cline) command -v cline >/dev/null 2>&1 || { log_error "Cline CLI not found"; return 1; } ;;
793
+ aider) command -v aider >/dev/null 2>&1 || { log_error "Aider not found"; return 1; } ;;
780
794
  esac
781
795
 
782
796
  local evidence
@@ -830,6 +844,16 @@ REASON: your reasoning"
830
844
  verdict=$(echo "$prompt" | gemini 2>/dev/null | tail -5)
831
845
  fi
832
846
  ;;
847
+ cline)
848
+ if command -v cline &>/dev/null; then
849
+ verdict=$(cline -y "$prompt" 2>/dev/null | tail -5)
850
+ fi
851
+ ;;
852
+ aider)
853
+ if command -v aider &>/dev/null; then
854
+ verdict=$(aider --message "$prompt" --yes-always --no-auto-commits --no-git 2>/dev/null | tail -5)
855
+ fi
856
+ ;;
833
857
  esac
834
858
 
835
859
  if [ -z "$verdict" ]; then
@@ -282,6 +282,20 @@ Respond ONLY with a valid JSON object. No markdown fencing."
282
282
  result='{"verdict":"REJECT","reasoning":"reviewer CLI unavailable","issues":[]}'
283
283
  fi
284
284
  ;;
285
+ cline)
286
+ if command -v cline &>/dev/null; then
287
+ result=$(cline -y "$full_prompt" 2>/dev/null || echo '{"verdict":"REJECT","reasoning":"review execution failed","issues":[]}')
288
+ else
289
+ result='{"verdict":"REJECT","reasoning":"reviewer CLI unavailable","issues":[]}'
290
+ fi
291
+ ;;
292
+ aider)
293
+ if command -v aider &>/dev/null; then
294
+ result=$(aider --message "$full_prompt" --yes-always --no-auto-commits --no-git 2>/dev/null || echo '{"verdict":"REJECT","reasoning":"review execution failed","issues":[]}')
295
+ else
296
+ result='{"verdict":"REJECT","reasoning":"reviewer CLI unavailable","issues":[]}'
297
+ fi
298
+ ;;
285
299
  *)
286
300
  result='{"verdict":"REJECT","reasoning":"review not supported for this provider","issues":[]}'
287
301
  ;;
package/autonomy/loki CHANGED
@@ -433,7 +433,7 @@ show_help() {
433
433
  echo " help Show this help"
434
434
  echo ""
435
435
  echo "Options for 'start':"
436
- echo " --provider NAME AI provider: claude (default), codex, gemini"
436
+ echo " --provider NAME AI provider: claude (default), codex, gemini, cline, aider"
437
437
  echo " --parallel Enable parallel mode with git worktrees"
438
438
  echo " --bg, --background Run in background mode"
439
439
  echo " --simple Force simple complexity tier (3 phases)"
@@ -450,7 +450,7 @@ show_help() {
450
450
  echo " --dry-run Preview generated PRD without starting"
451
451
  echo " --no-start Generate PRD but don't start execution"
452
452
  echo " --output FILE Save PRD to custom path"
453
- echo " --provider NAME AI provider: claude (default), codex, gemini"
453
+ echo " --provider NAME AI provider: claude (default), codex, gemini, cline, aider"
454
454
  echo " --parallel Enable parallel mode with git worktrees"
455
455
  echo " --budget USD Set cost budget limit"
456
456
  echo ""
@@ -499,7 +499,7 @@ cmd_start() {
499
499
  echo " PRD Path to PRD file (optional)"
500
500
  echo ""
501
501
  echo "Options:"
502
- echo " --provider NAME AI provider: claude (default), codex, gemini"
502
+ echo " --provider NAME AI provider: claude (default), codex, gemini, cline, aider"
503
503
  echo " --parallel Enable parallel mode with git worktrees"
504
504
  echo " --bg, --background Run in background mode"
505
505
  echo " --simple Force simple complexity tier (3 phases)"
@@ -536,7 +536,7 @@ cmd_start() {
536
536
  args+=("--provider" "$provider")
537
537
  shift 2
538
538
  else
539
- echo -e "${RED}--provider requires a value (claude, codex, gemini)${NC}"
539
+ echo -e "${RED}--provider requires a value (claude, codex, gemini, cline, aider)${NC}"
540
540
  exit 1
541
541
  fi
542
542
  ;;
@@ -545,6 +545,45 @@ cmd_start() {
545
545
  args+=("--provider" "$provider")
546
546
  shift
547
547
  ;;
548
+ --aider-model)
549
+ if [[ -n "${2:-}" ]]; then
550
+ export LOKI_AIDER_MODEL="$2"
551
+ shift 2
552
+ else
553
+ echo -e "${RED}--aider-model requires a value${NC}"
554
+ exit 1
555
+ fi
556
+ ;;
557
+ --aider-model=*)
558
+ export LOKI_AIDER_MODEL="${1#*=}"
559
+ shift
560
+ ;;
561
+ --aider-flags)
562
+ if [[ -n "${2:-}" ]]; then
563
+ export LOKI_AIDER_FLAGS="$2"
564
+ shift 2
565
+ else
566
+ echo -e "${RED}--aider-flags requires a value${NC}"
567
+ exit 1
568
+ fi
569
+ ;;
570
+ --aider-flags=*)
571
+ export LOKI_AIDER_FLAGS="${1#*=}"
572
+ shift
573
+ ;;
574
+ --cline-model)
575
+ if [[ -n "${2:-}" ]]; then
576
+ export LOKI_CLINE_MODEL="$2"
577
+ shift 2
578
+ else
579
+ echo -e "${RED}--cline-model requires a value${NC}"
580
+ exit 1
581
+ fi
582
+ ;;
583
+ --cline-model=*)
584
+ export LOKI_CLINE_MODEL="${1#*=}"
585
+ shift
586
+ ;;
548
587
  --parallel)
549
588
  args+=("--parallel")
550
589
  shift
@@ -1342,12 +1381,15 @@ cmd_status() {
1342
1381
  # Show provider with capability
1343
1382
  local capability="full features"
1344
1383
  case "$current_provider" in
1345
- codex|gemini)
1384
+ codex|gemini|aider)
1346
1385
  capability="degraded mode"
1347
1386
  ;;
1387
+ cline)
1388
+ capability="near-full mode"
1389
+ ;;
1348
1390
  esac
1349
1391
  echo -e "${CYAN}Provider:${NC} $current_provider ($capability)"
1350
- echo -e "${DIM} Switch with: loki provider set <claude|codex|gemini>${NC}"
1392
+ echo -e "${DIM} Switch with: loki provider set <claude|codex|gemini|cline|aider>${NC}"
1351
1393
  echo ""
1352
1394
 
1353
1395
  # Show running sessions (v6.4.0 - concurrent session support)
@@ -1624,12 +1666,14 @@ cmd_provider() {
1624
1666
  }
1625
1667
 
1626
1668
  cmd_provider_show() {
1669
+ local positional_arg="${1:-}"
1670
+
1627
1671
  local saved_provider=""
1628
1672
  if [ -f "$LOKI_DIR/state/provider" ]; then
1629
1673
  saved_provider=$(cat "$LOKI_DIR/state/provider" 2>/dev/null)
1630
1674
  fi
1631
1675
 
1632
- local current="${saved_provider:-${LOKI_PROVIDER:-claude}}"
1676
+ local current="${positional_arg:-${saved_provider:-${LOKI_PROVIDER:-claude}}}"
1633
1677
 
1634
1678
  echo -e "${BOLD}Current Provider${NC}"
1635
1679
  echo ""
@@ -1640,7 +1684,10 @@ cmd_provider_show() {
1640
1684
  claude)
1641
1685
  echo -e "${GREEN}Status:${NC} Full features (subagents, parallel, MCP)"
1642
1686
  ;;
1643
- codex|gemini)
1687
+ cline)
1688
+ echo -e "${GREEN}Status:${NC} Near-full mode (subagents, MCP, 12+ providers)"
1689
+ ;;
1690
+ codex|gemini|aider)
1644
1691
  echo -e "${YELLOW}Status:${NC} Degraded mode (sequential only)"
1645
1692
  ;;
1646
1693
  esac
@@ -1661,17 +1708,17 @@ cmd_provider_set() {
1661
1708
 
1662
1709
  if [ -z "$new_provider" ]; then
1663
1710
  echo -e "${RED}Error: Provider name required${NC}"
1664
- echo "Usage: loki provider set <claude|codex|gemini>"
1711
+ echo "Usage: loki provider set <claude|codex|gemini|cline|aider>"
1665
1712
  exit 1
1666
1713
  fi
1667
1714
 
1668
1715
  # Validate provider
1669
1716
  case "$new_provider" in
1670
- claude|codex|gemini)
1717
+ claude|codex|gemini|cline|aider)
1671
1718
  ;;
1672
1719
  *)
1673
1720
  echo -e "${RED}Error: Invalid provider '$new_provider'${NC}"
1674
- echo "Valid providers: claude, codex, gemini"
1721
+ echo "Valid providers: claude, codex, gemini, cline, aider"
1675
1722
  exit 1
1676
1723
  ;;
1677
1724
  esac
@@ -1690,6 +1737,12 @@ cmd_provider_set() {
1690
1737
  gemini)
1691
1738
  echo "Install: npm install -g @google/gemini-cli"
1692
1739
  ;;
1740
+ cline)
1741
+ echo "Install: npm install -g cline"
1742
+ ;;
1743
+ aider)
1744
+ echo "Install: pip install aider-chat"
1745
+ ;;
1693
1746
  esac
1694
1747
  echo ""
1695
1748
  echo -e "${DIM}Setting provider anyway...${NC}"
@@ -1719,6 +1772,8 @@ cmd_provider_list() {
1719
1772
  local claude_status="${RED}not installed${NC}"
1720
1773
  local codex_status="${RED}not installed${NC}"
1721
1774
  local gemini_status="${RED}not installed${NC}"
1775
+ local cline_status="${RED}not installed${NC}"
1776
+ local aider_status="${RED}not installed${NC}"
1722
1777
 
1723
1778
  if command -v claude &> /dev/null; then
1724
1779
  claude_status="${GREEN}installed${NC}"
@@ -1729,6 +1784,12 @@ cmd_provider_list() {
1729
1784
  if command -v gemini &> /dev/null; then
1730
1785
  gemini_status="${GREEN}installed${NC}"
1731
1786
  fi
1787
+ if command -v cline &> /dev/null; then
1788
+ cline_status="${GREEN}installed${NC}"
1789
+ fi
1790
+ if command -v aider &> /dev/null; then
1791
+ aider_status="${GREEN}installed${NC}"
1792
+ fi
1732
1793
 
1733
1794
  # Display providers
1734
1795
  local marker=""
@@ -1743,6 +1804,14 @@ cmd_provider_list() {
1743
1804
  [ "$current" = "gemini" ] && marker=" ${CYAN}(current)${NC}"
1744
1805
  echo -e " gemini - Gemini CLI (Google) $gemini_status$marker"
1745
1806
 
1807
+ marker=""
1808
+ [ "$current" = "cline" ] && marker=" ${CYAN}(current)${NC}"
1809
+ echo -e " cline - Cline (multi-provider) $cline_status$marker"
1810
+
1811
+ marker=""
1812
+ [ "$current" = "aider" ] && marker=" ${CYAN}(current)${NC}"
1813
+ echo -e " aider - Aider (terminal pair prog) $aider_status$marker"
1814
+
1746
1815
  echo ""
1747
1816
  echo -e "Set provider: ${CYAN}loki provider set <name>${NC}"
1748
1817
  }
@@ -1792,6 +1861,34 @@ cmd_provider_info() {
1792
1861
  echo ""
1793
1862
  echo "Status: Degraded mode"
1794
1863
  ;;
1864
+ cline)
1865
+ echo "Name: Cline CLI (Multi-Provider)"
1866
+ echo "Vendor: Cline (supports 12+ providers)"
1867
+ echo "CLI: cline"
1868
+ echo "Flag: -y (YOLO mode)"
1869
+ echo ""
1870
+ echo "Features:"
1871
+ echo " - Autonomous mode"
1872
+ echo " - Subagent support"
1873
+ echo " - MCP server support"
1874
+ echo " - 12+ model providers"
1875
+ echo ""
1876
+ echo "Status: Near-full mode (Tier 2)"
1877
+ ;;
1878
+ aider)
1879
+ echo "Name: Aider (18+ Providers)"
1880
+ echo "Vendor: Aider (supports 18+ providers)"
1881
+ echo "CLI: aider"
1882
+ echo "Flag: --yes-always"
1883
+ echo ""
1884
+ echo "Features:"
1885
+ echo " - Autonomous mode"
1886
+ echo " - 18+ model providers"
1887
+ echo " - Architect mode (dual model)"
1888
+ echo " - Built-in lint/test integration"
1889
+ echo ""
1890
+ echo "Status: Degraded mode (Tier 3)"
1891
+ ;;
1795
1892
  *)
1796
1893
  echo -e "${RED}Unknown provider: $provider${NC}"
1797
1894
  exit 1
@@ -2770,7 +2867,7 @@ cmd_run() {
2770
2867
  echo " --dry-run Preview generated PRD without starting"
2771
2868
  echo " --no-start Generate PRD but don't start execution"
2772
2869
  echo " --output FILE Save PRD to custom path"
2773
- echo " --provider NAME AI provider: claude (default), codex, gemini"
2870
+ echo " --provider NAME AI provider: claude (default), codex, gemini, cline, aider"
2774
2871
  echo " --parallel Enable parallel mode with git worktrees"
2775
2872
  echo " --bg, --background Run in background mode"
2776
2873
  echo " --simple Force simple complexity tier"
@@ -2867,7 +2964,6 @@ cmd_run() {
2867
2964
  shift
2868
2965
  ;;
2869
2966
  --worktree|-w)
2870
- start_args+=("--parallel")
2871
2967
  use_worktree=true
2872
2968
  shift
2873
2969
  ;;
@@ -3219,7 +3315,7 @@ cmd_issue() {
3219
3315
  echo " --output FILE Save PRD to custom path (default: .loki/prd-issue-N.md)"
3220
3316
  echo ""
3221
3317
  echo "Options passed to 'start' (when --start is used):"
3222
- echo " --provider NAME AI provider: claude (default), codex, gemini"
3318
+ echo " --provider NAME AI provider: claude (default), codex, gemini, cline, aider"
3223
3319
  echo " --parallel Enable parallel mode with git worktrees"
3224
3320
  echo " --bg, --background Run in background mode"
3225
3321
  echo ""
@@ -3932,7 +4028,7 @@ cmd_config() {
3932
4028
  echo " model.planning Model for planning tier"
3933
4029
  echo " model.development Model for development tier"
3934
4030
  echo " model.fast Model for fast tier"
3935
- echo " provider Default AI provider: claude, codex, gemini"
4031
+ echo " provider Default AI provider: claude, codex, gemini, cline, aider"
3936
4032
  echo " issue.provider Default issue provider: github, gitlab, jira, azure_devops"
3937
4033
  echo " blind_validation Blind validation mode: true, false (default: true)"
3938
4034
  echo " adversarial_testing Adversarial testing: true, false (default: true)"
@@ -3975,8 +4071,8 @@ cmd_config_set() {
3975
4071
  ;;
3976
4072
  provider)
3977
4073
  case "$value" in
3978
- claude|codex|gemini) ;;
3979
- *) echo -e "${RED}Invalid provider: $value (expected: claude, codex, gemini)${NC}"; return 1 ;;
4074
+ claude|codex|gemini|cline|aider) ;;
4075
+ *) echo -e "${RED}Invalid provider: $value (expected: claude, codex, gemini, cline, aider)${NC}"; return 1 ;;
3980
4076
  esac
3981
4077
  ;;
3982
4078
  issue.provider)
@@ -4272,6 +4368,8 @@ cmd_setup_skill() {
4272
4368
  "$HOME/.claude/skills/loki-mode:Claude Code"
4273
4369
  "$HOME/.codex/skills/loki-mode:Codex CLI"
4274
4370
  "$HOME/.gemini/skills/loki-mode:Gemini CLI"
4371
+ "$HOME/.cline/skills/loki-mode:Cline CLI"
4372
+ "$HOME/.aider/skills/loki-mode:Aider CLI"
4275
4373
  )
4276
4374
 
4277
4375
  local created=0
@@ -4420,6 +4518,12 @@ cmd_doctor() {
4420
4518
  gemini)
4421
4519
  version=$(gemini --version 2>/dev/null | head -1 | sed 's/[^0-9.]//g' | head -1)
4422
4520
  ;;
4521
+ cline)
4522
+ version=$(cline --version 2>/dev/null | head -1 | sed 's/[^0-9.]//g' | head -1)
4523
+ ;;
4524
+ aider)
4525
+ version=$(aider --version 2>/dev/null | head -1 | sed 's/[^0-9.]//g' | head -1)
4526
+ ;;
4423
4527
  esac
4424
4528
 
4425
4529
  local version_display=""
@@ -4454,17 +4558,19 @@ cmd_doctor() {
4454
4558
  }
4455
4559
 
4456
4560
  echo -e "${CYAN}Required:${NC}"
4457
- doctor_check "Node.js (>= 18)" node required 18.0
4458
- doctor_check "Python 3 (>= 3.8)" python3 required 3.8
4459
- doctor_check "jq" jq required
4460
- doctor_check "git" git required
4461
- doctor_check "curl" curl required
4561
+ doctor_check "Node.js (>= 18)" node required 18.0 || true
4562
+ doctor_check "Python 3 (>= 3.8)" python3 required 3.8 || true
4563
+ doctor_check "jq" jq required || true
4564
+ doctor_check "git" git required || true
4565
+ doctor_check "curl" curl required || true
4462
4566
  echo ""
4463
4567
 
4464
4568
  echo -e "${CYAN}AI Providers:${NC}"
4465
- doctor_check "Claude CLI" claude optional
4466
- doctor_check "Codex CLI" codex optional
4467
- doctor_check "Gemini CLI" gemini optional
4569
+ doctor_check "Claude CLI" claude optional || true
4570
+ doctor_check "Codex CLI" codex optional || true
4571
+ doctor_check "Gemini CLI" gemini optional || true
4572
+ doctor_check "Cline CLI" cline optional || true
4573
+ doctor_check "Aider CLI" aider optional || true
4468
4574
  echo ""
4469
4575
 
4470
4576
  echo -e "${CYAN}Skills:${NC}"
@@ -4472,6 +4578,8 @@ cmd_doctor() {
4472
4578
  "$HOME/.claude/skills/loki-mode:Claude Code"
4473
4579
  "$HOME/.codex/skills/loki-mode:Codex CLI"
4474
4580
  "$HOME/.gemini/skills/loki-mode:Gemini CLI"
4581
+ "$HOME/.cline/skills/loki-mode:Cline CLI"
4582
+ "$HOME/.aider/skills/loki-mode:Aider CLI"
4475
4583
  )
4476
4584
  for entry in "${skill_dirs[@]}"; do
4477
4585
  local sdir="${entry%%:*}"
@@ -4491,7 +4599,7 @@ cmd_doctor() {
4491
4599
  echo ""
4492
4600
 
4493
4601
  echo -e "${CYAN}System:${NC}"
4494
- doctor_check "bash (>= 4.0)" bash recommended 4.0
4602
+ doctor_check "bash (>= 4.0)" bash recommended 4.0 || true
4495
4603
 
4496
4604
  # Disk space check
4497
4605
  local disk_avail
@@ -4591,6 +4699,8 @@ checks.append(check_tool('bash', 'bash', 'recommended', '4.0'))
4591
4699
  checks.append(check_tool('Claude CLI', 'claude', 'optional'))
4592
4700
  checks.append(check_tool('Codex CLI', 'codex', 'optional'))
4593
4701
  checks.append(check_tool('Gemini CLI', 'gemini', 'optional'))
4702
+ checks.append(check_tool('Cline CLI', 'cline', 'optional'))
4703
+ checks.append(check_tool('Aider CLI', 'aider', 'optional'))
4594
4704
 
4595
4705
  # Disk space
4596
4706
  disk_gb = None
@@ -6742,8 +6852,17 @@ except Exception: pass
6742
6852
  gemini)
6743
6853
  (cd "$codebase_path" && gemini --approval-mode=yolo "$phase_prompt" 2>&1) || phase_exit=$?
6744
6854
  ;;
6855
+ cline)
6856
+ (cd "$codebase_path" && cline -y "$phase_prompt" 2>&1) || phase_exit=$?
6857
+ ;;
6858
+ aider)
6859
+ local aider_model="${LOKI_AIDER_MODEL:-claude-3.7-sonnet}"
6860
+ local aider_flags="${LOKI_AIDER_FLAGS:-}"
6861
+ # shellcheck disable=SC2086
6862
+ (cd "$codebase_path" && aider --message "$phase_prompt" --yes-always --no-auto-commits --model "$aider_model" $aider_flags 2>&1) || phase_exit=$?
6863
+ ;;
6745
6864
  *)
6746
- echo -e "${RED}Error: Unknown provider '${provider_name}'. Supported: claude, codex, gemini${NC}"
6865
+ echo -e "${RED}Error: Unknown provider '${provider_name}'. Supported: claude, codex, gemini, cline, aider${NC}"
6747
6866
  phase_exit=1
6748
6867
  ;;
6749
6868
  esac
@@ -6903,6 +7022,15 @@ except Exception: pass
6903
7022
  gemini)
6904
7023
  (cd "$codebase_path" && gemini --approval-mode=yolo "$doc_prompt" 2>&1) || doc_exit=$?
6905
7024
  ;;
7025
+ cline)
7026
+ (cd "$codebase_path" && cline -y "$doc_prompt" 2>&1) || doc_exit=$?
7027
+ ;;
7028
+ aider)
7029
+ local aider_model="${LOKI_AIDER_MODEL:-claude-3.7-sonnet}"
7030
+ local aider_flags="${LOKI_AIDER_FLAGS:-}"
7031
+ # shellcheck disable=SC2086
7032
+ (cd "$codebase_path" && aider --message "$doc_prompt" --yes-always --no-auto-commits --model "$aider_model" $aider_flags 2>&1) || doc_exit=$?
7033
+ ;;
6906
7034
  esac
6907
7035
 
6908
7036
  if [ "$doc_exit" -eq 0 ] && [ -d "${codebase_path}/migration_docs" ]; then