loki-mode 5.49.3 → 5.50.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.
Files changed (56) hide show
  1. package/README.md +38 -27
  2. package/SKILL.md +2 -2
  3. package/VERSION +1 -1
  4. package/autonomy/loki +91 -1
  5. package/bin/postinstall.js +63 -57
  6. package/dashboard/__init__.py +1 -1
  7. package/docs/INSTALLATION.md +70 -50
  8. package/docs/alternative-installations.md +27 -43
  9. package/mcp/__init__.py +1 -1
  10. package/package.json +4 -3
  11. package/src/audit/compliance.js +226 -0
  12. package/src/audit/index.js +147 -0
  13. package/src/audit/log.js +153 -0
  14. package/src/audit/residency.js +150 -0
  15. package/src/integrations/adapter.js +128 -0
  16. package/src/integrations/github/action-handler.js +267 -0
  17. package/src/integrations/github/reporter.js +485 -0
  18. package/src/integrations/github/templates/execution-summary.md +16 -0
  19. package/src/integrations/github/templates/quality-report.md +18 -0
  20. package/src/integrations/jira/api-client.js +152 -0
  21. package/src/integrations/jira/epic-converter.js +157 -0
  22. package/src/integrations/jira/index.js +45 -0
  23. package/src/integrations/jira/sync-manager.js +143 -0
  24. package/src/integrations/jira/webhook-handler.js +101 -0
  25. package/src/integrations/linear/client.js +382 -0
  26. package/src/integrations/linear/config.js +168 -0
  27. package/src/integrations/linear/sync.js +305 -0
  28. package/src/observability/index.js +144 -0
  29. package/src/observability/metrics.js +181 -0
  30. package/src/observability/otel.js +662 -0
  31. package/src/observability/spans.js +199 -0
  32. package/src/policies/approval.js +366 -0
  33. package/src/policies/cost.js +296 -0
  34. package/src/policies/engine.js +615 -0
  35. package/src/policies/index.js +216 -0
  36. package/src/policies/types.js +303 -0
  37. package/src/protocols/a2a/agent-card.js +101 -0
  38. package/src/protocols/a2a/artifacts.js +61 -0
  39. package/src/protocols/a2a/client.js +167 -0
  40. package/src/protocols/a2a/index.js +40 -0
  41. package/src/protocols/a2a/streaming.js +120 -0
  42. package/src/protocols/a2a/task-manager.js +183 -0
  43. package/src/protocols/auth/oauth.js +220 -0
  44. package/src/protocols/mcp-circuit-breaker.js +165 -0
  45. package/src/protocols/mcp-client-manager.js +264 -0
  46. package/src/protocols/mcp-client.js +383 -0
  47. package/src/protocols/mcp-server.js +367 -0
  48. package/src/protocols/resources/continuity.js +49 -0
  49. package/src/protocols/resources/memory.js +128 -0
  50. package/src/protocols/tools/agent-metrics.js +164 -0
  51. package/src/protocols/tools/checkpoint-restore.js +225 -0
  52. package/src/protocols/tools/project-status.js +110 -0
  53. package/src/protocols/tools/quality-report.js +141 -0
  54. package/src/protocols/tools/start-project.js +165 -0
  55. package/src/protocols/transport/sse.js +191 -0
  56. package/src/protocols/transport/stdio.js +85 -0
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![Agent Types](https://img.shields.io/badge/Agent%20Types-41-blue)]()
12
12
  [![Benchmarks](https://img.shields.io/badge/Benchmarks-Infrastructure%20Ready-blue)](benchmarks/)
13
13
 
14
- **Current Version: v5.49.3**
14
+ **Current Version: v5.50.0**
15
15
 
16
16
  **[Autonomi](https://www.autonomi.dev/)** | **[Documentation](https://www.autonomi.dev/docs)** | **[GitHub](https://github.com/asklokesh/loki-mode)**
17
17
 
@@ -41,56 +41,67 @@
41
41
 
42
42
  ## Installation
43
43
 
44
+ ### npm (Recommended)
45
+
44
46
  ```bash
45
- git clone https://github.com/asklokesh/loki-mode.git ~/.claude/skills/loki-mode
47
+ npm install -g loki-mode
46
48
  ```
47
49
 
48
- That's it. Claude Code auto-discovers skills in `~/.claude/skills/`.
50
+ Installs the `loki` CLI and automatically sets up the skill for Claude Code, Codex CLI, and Gemini CLI.
49
51
 
50
- ### Use It
52
+ ### Homebrew
51
53
 
52
54
  ```bash
53
- claude --dangerously-skip-permissions
54
- # Then say: "Loki Mode with PRD at ./my-prd.md"
55
+ brew tap asklokesh/tap && brew install loki-mode
55
56
  ```
56
57
 
57
- ### Update
58
+ Installs the `loki` CLI. To also install the skill for interactive use:
58
59
 
59
60
  ```bash
60
- cd ~/.claude/skills/loki-mode && git pull
61
+ loki setup-skill
61
62
  ```
62
63
 
63
- ### Troubleshooting
64
+ ### Quick Start
64
65
 
65
- | Problem | Fix |
66
- |---------|-----|
67
- | `SKILL.md` not found | Verify: `ls ~/.claude/skills/loki-mode/SKILL.md` |
68
- | Claude doesn't recognize "Loki Mode" | Restart Claude Code after cloning |
69
- | Permission denied on clone | Check SSH keys or use HTTPS URL above |
66
+ ```bash
67
+ # CLI mode (works with any provider)
68
+ loki start ./prd.md
69
+ loki start ./prd.md --provider codex
70
+ loki start ./prd.md --provider gemini
70
71
 
71
- ### Other Installation Methods
72
+ # Interactive mode (inside your coding agent)
73
+ claude --dangerously-skip-permissions
74
+ # Then say: "Loki Mode with PRD at ./my-prd.md"
72
75
 
73
- Also available via **npm**, **Homebrew**, **Docker**, **GitHub Action**, and **VS Code Extension**. See [docs/alternative-installations.md](docs/alternative-installations.md) for details and limitations of each method.
76
+ # Or in Codex CLI:
77
+ codex
78
+ # Then say: "Use Loki Mode with PRD at ./my-prd.md"
74
79
 
75
- ### Multi-Provider Support (v5.0.0)
80
+ # Or in Gemini CLI:
81
+ gemini
82
+ # Then say: "Use Loki Mode with PRD at ./my-prd.md"
83
+ ```
76
84
 
77
- Loki Mode supports three AI providers:
85
+ ### Verify Installation
78
86
 
79
87
  ```bash
80
- # Claude Code (default - full features)
81
- loki start --provider claude ./my-prd.md
88
+ loki --version # Should print 5.50.0
89
+ loki doctor # Check skill symlinks and provider availability
90
+ ```
91
+
92
+ ### Other Methods
82
93
 
83
- # OpenAI Codex CLI (degraded mode)
84
- loki start --provider codex ./my-prd.md
94
+ Git clone, Docker, GitHub Action, and VS Code Extension are also available. See [docs/alternative-installations.md](docs/alternative-installations.md).
85
95
 
86
- # Google Gemini CLI (degraded mode)
87
- loki start --provider gemini ./my-prd.md
96
+ ### Update
88
97
 
89
- # Or via environment variable
90
- LOKI_PROVIDER=codex loki start ./my-prd.md
98
+ ```bash
99
+ npm update -g loki-mode # npm
100
+ brew upgrade loki-mode # Homebrew
91
101
  ```
92
102
 
93
- **Provider Comparison:**
103
+ ### Multi-Provider Support (v5.0.0)
104
+
94
105
  | Provider | Features | Parallel Agents | Task Tool |
95
106
  |----------|----------|-----------------|-----------|
96
107
  | Claude | Full | Yes (10+) | Yes |
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ 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 v5.49.3
6
+ # Loki Mode v5.50.0
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
@@ -263,4 +263,4 @@ The following features are documented in skill modules but not yet fully automat
263
263
  | Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
264
264
  | Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
265
265
 
266
- **v5.49.3 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
266
+ **v5.50.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 5.49.3
1
+ 5.50.0
package/autonomy/loki CHANGED
@@ -340,7 +340,8 @@ show_help() {
340
340
  echo " dogfood Show self-development statistics"
341
341
  echo " secrets [cmd] API key status and validation (status|validate)"
342
342
  echo " reset [target] Reset session state (all|retries|failed)"
343
- echo " doctor [--json] Check system prerequisites"
343
+ echo " doctor [--json] Check system prerequisites and skill symlinks"
344
+ echo " setup-skill Create skill symlinks for all providers"
344
345
  echo " watchdog [cmd] Process health monitoring (status|help)"
345
346
  echo " version Show version"
346
347
  echo " help Show this help"
@@ -2860,6 +2861,69 @@ cmd_config_path() {
2860
2861
  echo "Create a config file with: loki config init"
2861
2862
  }
2862
2863
 
2864
+ # Set up skill symlinks for all providers
2865
+ cmd_setup_skill() {
2866
+ echo -e "${BOLD}Loki Mode Skill Setup${NC}"
2867
+ echo ""
2868
+
2869
+ local skill_targets=(
2870
+ "$HOME/.claude/skills/loki-mode:Claude Code"
2871
+ "$HOME/.codex/skills/loki-mode:Codex CLI"
2872
+ "$HOME/.gemini/skills/loki-mode:Gemini CLI"
2873
+ )
2874
+
2875
+ local created=0
2876
+ local skipped=0
2877
+ local failed=0
2878
+
2879
+ for entry in "${skill_targets[@]}"; do
2880
+ local target_dir="${entry%%:*}"
2881
+ local target_name="${entry#*:}"
2882
+ local parent_dir
2883
+ parent_dir=$(dirname "$target_dir")
2884
+ local short_path="${target_dir/#$HOME/\~}"
2885
+
2886
+ # Already exists and valid
2887
+ if [ -f "$target_dir/SKILL.md" ]; then
2888
+ echo -e " ${GREEN}OK${NC} $target_name ${DIM}($short_path)${NC}"
2889
+ skipped=$((skipped + 1))
2890
+ continue
2891
+ fi
2892
+
2893
+ # Remove broken symlink
2894
+ if [ -L "$target_dir" ]; then
2895
+ rm -f "$target_dir"
2896
+ fi
2897
+
2898
+ # Create parent directory
2899
+ if [ ! -d "$parent_dir" ]; then
2900
+ mkdir -p "$parent_dir" 2>/dev/null || true
2901
+ fi
2902
+
2903
+ # Create symlink to skill dir
2904
+ if ln -sf "$SKILL_DIR" "$target_dir" 2>/dev/null; then
2905
+ echo -e " ${GREEN}NEW${NC} $target_name ${DIM}($short_path)${NC}"
2906
+ created=$((created + 1))
2907
+ else
2908
+ echo -e " ${RED}FAIL${NC} $target_name ${DIM}($short_path)${NC}"
2909
+ failed=$((failed + 1))
2910
+ fi
2911
+ done
2912
+
2913
+ echo ""
2914
+ if [ "$created" -gt 0 ]; then
2915
+ echo -e "${GREEN}Created $created new skill symlink(s).${NC}"
2916
+ fi
2917
+ if [ "$skipped" -gt 0 ]; then
2918
+ echo -e "${DIM}$skipped already installed.${NC}"
2919
+ fi
2920
+ if [ "$failed" -gt 0 ]; then
2921
+ echo -e "${RED}$failed failed (check permissions).${NC}"
2922
+ return 1
2923
+ fi
2924
+ return 0
2925
+ }
2926
+
2863
2927
  # Check system prerequisites
2864
2928
  cmd_doctor() {
2865
2929
  local json_output=false
@@ -3001,6 +3065,29 @@ cmd_doctor() {
3001
3065
  doctor_check "Gemini CLI" gemini optional
3002
3066
  echo ""
3003
3067
 
3068
+ echo -e "${CYAN}Skills:${NC}"
3069
+ local skill_dirs=(
3070
+ "$HOME/.claude/skills/loki-mode:Claude Code"
3071
+ "$HOME/.codex/skills/loki-mode:Codex CLI"
3072
+ "$HOME/.gemini/skills/loki-mode:Gemini CLI"
3073
+ )
3074
+ for entry in "${skill_dirs[@]}"; do
3075
+ local sdir="${entry%%:*}"
3076
+ local sname="${entry#*:}"
3077
+ local short_path="${sdir/$HOME/~}"
3078
+ if [ -f "$sdir/SKILL.md" ]; then
3079
+ echo -e " ${GREEN}PASS${NC} $sname ${DIM}$short_path${NC}"
3080
+ pass_count=$((pass_count + 1))
3081
+ elif [ -L "$sdir" ]; then
3082
+ echo -e " ${RED}FAIL${NC} $sname ${DIM}(broken symlink at $short_path)${NC}"
3083
+ fail_count=$((fail_count + 1))
3084
+ else
3085
+ echo -e " ${YELLOW}WARN${NC} $sname ${DIM}(not found - run 'loki setup-skill')${NC}"
3086
+ warn_count=$((warn_count + 1))
3087
+ fi
3088
+ done
3089
+ echo ""
3090
+
3004
3091
  echo -e "${CYAN}System:${NC}"
3005
3092
  doctor_check "bash (>= 4.0)" bash recommended 4.0
3006
3093
 
@@ -4679,6 +4766,9 @@ main() {
4679
4766
  doctor)
4680
4767
  cmd_doctor "$@"
4681
4768
  ;;
4769
+ setup-skill)
4770
+ cmd_setup_skill "$@"
4771
+ ;;
4682
4772
  watchdog)
4683
4773
  cmd_watchdog "$@"
4684
4774
  ;;
@@ -9,7 +9,6 @@ const path = require('path');
9
9
  const os = require('os');
10
10
 
11
11
  const homeDir = os.homedir();
12
- const skillDir = path.join(homeDir, '.claude', 'skills', 'loki-mode');
13
12
  const packageDir = path.join(__dirname, '..');
14
13
 
15
14
  const version = (() => {
@@ -21,73 +20,79 @@ console.log('');
21
20
  console.log(`Loki Mode v${version} installed!`);
22
21
  console.log('');
23
22
 
24
- // Try to create skill symlink
25
- try {
26
- const skillParent = path.dirname(skillDir);
23
+ // Multi-provider skill targets
24
+ const skillTargets = [
25
+ { dir: path.join(homeDir, '.claude', 'skills', 'loki-mode'), name: 'Claude Code' },
26
+ { dir: path.join(homeDir, '.codex', 'skills', 'loki-mode'), name: 'Codex CLI' },
27
+ { dir: path.join(homeDir, '.gemini', 'skills', 'loki-mode'), name: 'Gemini CLI' },
28
+ ];
27
29
 
28
- if (!fs.existsSync(skillParent)) {
29
- fs.mkdirSync(skillParent, { recursive: true });
30
- }
30
+ const results = [];
31
+
32
+ for (const target of skillTargets) {
33
+ try {
34
+ const skillParent = path.dirname(target.dir);
31
35
 
32
- // Remove existing symlink/directory
33
- if (fs.existsSync(skillDir)) {
34
- const stats = fs.lstatSync(skillDir);
35
- if (stats.isSymbolicLink()) {
36
- fs.unlinkSync(skillDir);
37
- } else {
38
- // Existing real directory (not a symlink) - back it up and replace
39
- const backupDir = skillDir + '.backup.' + Date.now();
40
- console.log(`[WARNING] Existing non-symlink installation found at ${skillDir}`);
41
- console.log(` Active version: ${skillDir}`);
42
- console.log(` npm version: ${packageDir}`);
43
- console.log('');
44
- console.log(`Backing up existing installation to: ${backupDir}`);
45
- try {
46
- fs.renameSync(skillDir, backupDir);
47
- console.log('Backup complete. Creating symlink to npm installation.');
48
- console.log('');
49
- console.log(`To restore the old installation later:`);
50
- console.log(` rm "${skillDir}" && mv "${backupDir}" "${skillDir}"`);
51
- console.log('');
52
- } catch (backupErr) {
53
- console.log(`Could not back up existing installation: ${backupErr.message}`);
54
- console.log('');
55
- console.log('To fix manually, remove the existing directory and reinstall:');
56
- console.log(` rm -rf "${skillDir}"`);
57
- console.log(' npm install -g loki-mode');
58
- console.log('');
36
+ if (!fs.existsSync(skillParent)) {
37
+ fs.mkdirSync(skillParent, { recursive: true });
38
+ }
39
+
40
+ // Remove existing symlink/directory
41
+ if (fs.existsSync(target.dir)) {
42
+ const stats = fs.lstatSync(target.dir);
43
+ if (stats.isSymbolicLink()) {
44
+ fs.unlinkSync(target.dir);
45
+ } else {
46
+ // Existing real directory (not a symlink) - back it up and replace
47
+ const backupDir = target.dir + '.backup.' + Date.now();
48
+ console.log(`[WARNING] Existing non-symlink installation found at ${target.dir}`);
49
+ console.log(` Backing up to: ${backupDir}`);
50
+ try {
51
+ fs.renameSync(target.dir, backupDir);
52
+ } catch (backupErr) {
53
+ console.log(` Could not back up: ${backupErr.message}`);
54
+ results.push({ name: target.name, path: target.dir, ok: false });
55
+ continue;
56
+ }
59
57
  }
60
58
  }
59
+
60
+ // Create symlink
61
+ if (!fs.existsSync(target.dir)) {
62
+ fs.symlinkSync(packageDir, target.dir);
63
+ }
64
+ results.push({ name: target.name, path: target.dir, ok: true });
65
+ } catch (err) {
66
+ results.push({ name: target.name, path: target.dir, ok: false, error: err.message });
61
67
  }
68
+ }
62
69
 
63
- // Create symlink
64
- if (!fs.existsSync(skillDir)) {
65
- fs.symlinkSync(packageDir, skillDir);
66
- console.log(`Skill installed to: ${skillDir}`);
70
+ // Print summary
71
+ console.log('Skills installed:');
72
+ for (const r of results) {
73
+ const icon = r.ok ? 'OK' : 'SKIP';
74
+ const shortPath = r.path.replace(homeDir, '~');
75
+ if (r.ok) {
76
+ console.log(` [${icon}] ${r.name.padEnd(12)} (${shortPath})`);
77
+ } else {
78
+ console.log(` [${icon}] ${r.name.padEnd(12)} (${shortPath}) - ${r.error || 'backup failed'}`);
67
79
  }
68
- } catch (err) {
69
- console.log(`Could not auto-install skill: ${err.message}`);
80
+ }
81
+
82
+ if (results.some(r => !r.ok)) {
70
83
  console.log('');
71
- console.log('Manual installation:');
72
- console.log(` ln -sf "${packageDir}" "${skillDir}"`);
84
+ console.log('To fix missing symlinks:');
85
+ console.log(` loki setup-skill`);
73
86
  }
74
87
 
75
88
  console.log('');
76
- console.log('Usage:');
77
- console.log(' loki start [PRD] - Start with Claude (default)');
78
- console.log(' loki start --provider codex - Start with OpenAI Codex');
79
- console.log(' loki start --provider gemini - Start with Google Gemini');
80
- console.log(' loki status - Check status');
81
- console.log(' loki --help - Show all commands');
82
- console.log('');
83
- console.log('Providers:');
84
- console.log(' claude - Full features (parallel agents, Task tool, MCP)');
85
- console.log(' codex - Degraded mode (sequential only)');
86
- console.log(' gemini - Degraded mode (sequential only)');
87
- console.log('');
88
- console.log('Or in Claude Code:');
89
- console.log(' claude --dangerously-skip-permissions');
90
- console.log(' Then say: "Loki Mode"');
89
+ console.log('CLI commands:');
90
+ console.log(' loki start ./prd.md Start with Claude (default)');
91
+ console.log(' loki start --provider codex Start with OpenAI Codex');
92
+ console.log(' loki start --provider gemini Start with Google Gemini');
93
+ console.log(' loki status Check status');
94
+ console.log(' loki doctor Verify installation');
95
+ console.log(' loki --help Show all commands');
91
96
  console.log('');
92
97
 
93
98
  // Anonymous install telemetry (fire-and-forget, silent)
@@ -113,6 +118,7 @@ try {
113
118
  version: version,
114
119
  channel: 'npm',
115
120
  node_version: process.version,
121
+ providers_installed: results.filter(r => r.ok).map(r => r.name).join(','),
116
122
  },
117
123
  });
118
124
  const req = https.request({
@@ -7,7 +7,7 @@ Modules:
7
7
  control: Session control API (start/stop/pause/resume)
8
8
  """
9
9
 
10
- __version__ = "5.49.3"
10
+ __version__ = "5.50.0"
11
11
 
12
12
  # Expose the control app for easy import
13
13
  try:
@@ -2,7 +2,7 @@
2
2
 
3
3
  The flagship product of [Autonomi](https://www.autonomi.dev/). Complete installation instructions for all platforms and use cases.
4
4
 
5
- **Version:** v5.49.3
5
+ **Version:** v5.50.0
6
6
 
7
7
  ---
8
8
 
@@ -34,36 +34,95 @@ The flagship product of [Autonomi](https://www.autonomi.dev/). Complete installa
34
34
 
35
35
  ## Table of Contents
36
36
 
37
- - [Quick Install (Recommended)](#quick-install-recommended)
37
+ - [npm (Recommended)](#npm-recommended)
38
+ - [Homebrew](#homebrew)
39
+ - [Quick Start](#quick-start)
40
+ - [Verify Installation](#verify-installation)
41
+ - [Other Methods](#other-methods)
38
42
  - [VS Code Extension](#vs-code-extension)
39
- - [Alternative Methods](#alternative-methods)
40
43
  - [Sandbox Mode](#sandbox-mode)
41
44
  - [Multi-Provider Support](#multi-provider-support)
42
45
  - [Claude Code (CLI)](#claude-code-cli)
43
46
  - [Claude.ai (Web)](#claudeai-web)
44
47
  - [Anthropic API Console](#anthropic-api-console)
45
- - [Verify Installation](#verify-installation)
46
48
  - [Ports](#ports)
47
49
  - [Shell Completions](#shell-completions)
48
50
  - [Troubleshooting](#troubleshooting)
49
51
 
50
52
  ---
51
53
 
52
- ## Quick Install (Recommended)
54
+ ## npm (Recommended)
53
55
 
54
56
  ```bash
55
- git clone https://github.com/asklokesh/loki-mode.git ~/.claude/skills/loki-mode
57
+ npm install -g loki-mode
58
+ ```
59
+
60
+ Installs the `loki` CLI and automatically sets up the skill for Claude Code, Codex CLI, and Gemini CLI via the postinstall script.
61
+
62
+ **Prerequisites:** Node.js 16+
63
+
64
+ **What it does:**
65
+ - Installs the `loki` CLI binary to your PATH
66
+ - Creates skill symlinks at `~/.claude/skills/loki-mode`, `~/.codex/skills/loki-mode`, and `~/.gemini/skills/loki-mode`
67
+ - Each provider auto-discovers skills in its respective directory
68
+
69
+ **Opt out of anonymous install telemetry:**
70
+ ```bash
71
+ LOKI_TELEMETRY_DISABLED=true npm install -g loki-mode
72
+ # Or set DO_NOT_TRACK=1
73
+ ```
74
+
75
+ **Update:** `npm update -g loki-mode`
76
+
77
+ **Uninstall:** `npm uninstall -g loki-mode`
78
+
79
+ ---
80
+
81
+ ## Homebrew
82
+
83
+ ```bash
84
+ brew tap asklokesh/tap && brew install loki-mode
85
+ ```
86
+
87
+ Installs the `loki` CLI. To also install the skill for interactive use with all providers:
88
+
89
+ ```bash
90
+ loki setup-skill
91
+ ```
92
+
93
+ **Update:** `brew upgrade loki-mode`
94
+
95
+ **Uninstall:** `brew uninstall loki-mode`
96
+
97
+ ---
98
+
99
+ ## Quick Start
100
+
101
+ ```bash
102
+ # CLI mode (works with any provider)
103
+ loki start ./prd.md
104
+ loki start ./prd.md --provider codex
105
+ loki start ./prd.md --provider gemini
106
+
107
+ # Interactive mode (inside your coding agent)
108
+ claude --dangerously-skip-permissions
109
+ # Then say: "Loki Mode with PRD at ./my-prd.md"
56
110
  ```
57
111
 
58
- That's it. Claude Code auto-discovers skills in `~/.claude/skills/`.
112
+ ---
113
+
114
+ ## Verify Installation
59
115
 
60
- **Update:** `cd ~/.claude/skills/loki-mode && git pull`
116
+ ```bash
117
+ loki --version # Should print the current version
118
+ loki doctor # Check skill symlinks, providers, and system prerequisites
119
+ ```
61
120
 
62
- Skip to [Verify Installation](#verify-installation) to confirm it's working.
121
+ ---
63
122
 
64
- ### Alternative Installation Methods
123
+ ## Other Methods
65
124
 
66
- Also available via npm, Homebrew, Docker, VS Code Extension, and GitHub Action. Each has trade-offs -- see [docs/alternative-installations.md](alternative-installations.md) for details, limitations, and current status of each method.
125
+ Git clone, Docker, GitHub Action, and VS Code Extension are also available. See [alternative-installations.md](alternative-installations.md) for details and trade-offs.
67
126
 
68
127
  ---
69
128
 
@@ -139,45 +198,6 @@ The extension will automatically connect when it detects the server is running a
139
198
 
140
199
  ---
141
200
 
142
- ## Alternative Methods
143
-
144
- The following installation methods are available but each has limitations. Git clone (above) is the recommended primary method.
145
-
146
- For full details, troubleshooting, and current status of each method, see [alternative-installations.md](alternative-installations.md).
147
-
148
- ### npm
149
-
150
- **Status:** Published to npm registry. Verify current version: `npm view loki-mode version`
151
-
152
- ```bash
153
- npm install -g loki-mode
154
- ```
155
-
156
- Requires Node.js 16+. Provides the `loki` CLI and auto-installs the skill to `~/.claude/skills/loki-mode`.
157
-
158
- ### Homebrew
159
-
160
- **Status:** Available via tap. Verify formula: `brew info asklokesh/tap/loki-mode`
161
-
162
- ```bash
163
- brew tap asklokesh/tap && brew install loki-mode
164
- # Manual symlink required for Claude Code:
165
- ln -sf "$(brew --prefix)/opt/loki-mode/libexec" ~/.claude/skills/loki-mode
166
- ```
167
-
168
- ### Docker
169
-
170
- **Status:** Published to Docker Hub.
171
-
172
- ```bash
173
- docker pull asklokesh/loki-mode:latest
174
- docker run -v $(pwd):/workspace -w /workspace asklokesh/loki-mode:latest start ./my-prd.md
175
- ```
176
-
177
- **Limitation:** Docker cannot run Claude Code interactively (Claude Code is a terminal-based CLI requiring TTY access). Docker is suitable for CI/CD pipelines, API-only modes, and sandbox execution -- not for the primary interactive workflow.
178
-
179
- ---
180
-
181
201
  ## Sandbox Mode
182
202
 
183
203
  Run Loki Mode in an isolated Docker container for enhanced security.