codekin 0.3.6 → 0.4.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 (55) hide show
  1. package/README.md +13 -2
  2. package/bin/codekin.mjs +2 -1
  3. package/dist/assets/index-BAdQqYEY.js +182 -0
  4. package/dist/assets/index-CeZYNLWt.css +1 -0
  5. package/dist/index.html +2 -2
  6. package/package.json +8 -2
  7. package/server/dist/approval-manager.d.ts +44 -8
  8. package/server/dist/approval-manager.js +262 -23
  9. package/server/dist/approval-manager.js.map +1 -1
  10. package/server/dist/claude-process.d.ts +16 -1
  11. package/server/dist/claude-process.js +36 -12
  12. package/server/dist/claude-process.js.map +1 -1
  13. package/server/dist/commit-event-handler.d.ts +41 -0
  14. package/server/dist/commit-event-handler.js +99 -0
  15. package/server/dist/commit-event-handler.js.map +1 -0
  16. package/server/dist/commit-event-hooks.d.ts +35 -0
  17. package/server/dist/commit-event-hooks.js +177 -0
  18. package/server/dist/commit-event-hooks.js.map +1 -0
  19. package/server/dist/crypto-utils.js +10 -5
  20. package/server/dist/crypto-utils.js.map +1 -1
  21. package/server/dist/diff-parser.d.ts +23 -0
  22. package/server/dist/diff-parser.js +236 -0
  23. package/server/dist/diff-parser.js.map +1 -0
  24. package/server/dist/session-archive.js +6 -1
  25. package/server/dist/session-archive.js.map +1 -1
  26. package/server/dist/session-manager.d.ts +25 -8
  27. package/server/dist/session-manager.js +370 -30
  28. package/server/dist/session-manager.js.map +1 -1
  29. package/server/dist/session-routes.js +101 -4
  30. package/server/dist/session-routes.js.map +1 -1
  31. package/server/dist/stepflow-handler.js +19 -5
  32. package/server/dist/stepflow-handler.js.map +1 -1
  33. package/server/dist/tsconfig.tsbuildinfo +1 -1
  34. package/server/dist/types.d.ts +63 -8
  35. package/server/dist/upload-routes.d.ts +1 -1
  36. package/server/dist/upload-routes.js +40 -13
  37. package/server/dist/upload-routes.js.map +1 -1
  38. package/server/dist/webhook-handler.js +2 -2
  39. package/server/dist/webhook-handler.js.map +1 -1
  40. package/server/dist/webhook-workspace.js +5 -2
  41. package/server/dist/webhook-workspace.js.map +1 -1
  42. package/server/dist/workflow-loader.d.ts +6 -0
  43. package/server/dist/workflow-loader.js +11 -0
  44. package/server/dist/workflow-loader.js.map +1 -1
  45. package/server/dist/workflow-routes.d.ts +5 -1
  46. package/server/dist/workflow-routes.js +49 -8
  47. package/server/dist/workflow-routes.js.map +1 -1
  48. package/server/dist/ws-message-handler.js +19 -2
  49. package/server/dist/ws-message-handler.js.map +1 -1
  50. package/server/dist/ws-server.js +37 -9
  51. package/server/dist/ws-server.js.map +1 -1
  52. package/server/workflows/commit-review.md +22 -0
  53. package/server/workflows/docs-audit.weekly.md +97 -0
  54. package/dist/assets/index-Cp27uOZO.js +0 -174
  55. package/dist/assets/index-D3SqBuHB.css +0 -1
package/README.md CHANGED
@@ -3,8 +3,12 @@
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
4
4
  [![npm version](https://img.shields.io/npm/v/codekin.svg)](https://www.npmjs.com/package/codekin)
5
5
 
6
+ **[codekin.ai](https://codekin.ai)**
7
+
6
8
  Web UI for Claude Code sessions — multi-session support, WebSocket streaming, file uploads, and slash-command skills.
7
9
 
10
+ ![Codekin screenshot](docs/screenshot.png)
11
+
8
12
  ## Install
9
13
 
10
14
  **Prerequisites:**
@@ -43,10 +47,18 @@ codekin uninstall # Remove Codekin entirely
43
47
  ## Features
44
48
 
45
49
  - **Multi-session terminal** — Open and switch between multiple Claude Code sessions, one per repo
50
+ - **Session archive** — Full retrieval and re-activation of archived sessions
46
51
  - **Repo browser** — Auto-discovers local repos and GitHub org repos
47
52
  - **Screenshot upload** — Drag-and-drop or paste images; the file path is sent to Claude so it can read them natively
48
- - **Skill browser** — Browse and invoke `/skills` defined in each repo's `.claude/skills/`
53
+ - **Skill browser** — Browse and invoke `/skills` defined in each repo's `.claude/skills/`, with inline slash-command autocomplete
54
+ - **Diff viewer** — Side panel showing staged/unstaged file changes with per-file discard support
49
55
  - **Command palette** — `Ctrl+K` to quickly search repos, skills, and actions
56
+ - **Approval management** — Persistent approval storage with detailed per-permission revoking
57
+ - **Mobile-friendly** — Responsive layout that works on phones and tablets
58
+ - **Markdown browser** — Browse and view `.md` files directly in the UI
59
+ - **AI Workflows** — Scheduled code and repository audits and maintenance, with support for custom workflows defined as Markdown files
60
+ - **GitHub webhooks** — Automated bugfixing on CI failures via webhook integration
61
+ - **LLM-powered chores** — Optional API keys (Groq, OpenAI, Gemini, Anthropic) for background tasks like session auto-naming
50
62
 
51
63
  ## Upgrade
52
64
 
@@ -79,7 +91,6 @@ All configuration lives in `~/.config/codekin/env`. Edit this file to override d
79
91
  |---|---|---|
80
92
  | `PORT` | `32352` | Server port |
81
93
  | `REPOS_ROOT` | `~/repos` | Root directory scanned for local repositories |
82
- | `GH_ORG` | — | Comma-separated GitHub orgs for repo listing |
83
94
  | `GROQ_API_KEY` | — | Optional. Enables session auto-naming via Llama 4 Scout (free tier at [groq.com](https://groq.com)) |
84
95
  | `OPENAI_API_KEY` | — | Optional. Fallback for session auto-naming via GPT-4o Mini ([platform.openai.com](https://platform.openai.com)) |
85
96
  | `GEMINI_API_KEY` | — | Optional. Fallback for session auto-naming via Gemini 2.5 Flash ([aistudio.google.com](https://aistudio.google.com)) |
package/bin/codekin.mjs CHANGED
@@ -221,8 +221,9 @@ function buildPlist() {
221
221
  // Inject PATH and HOME so launchd service can find gh, node, etc.
222
222
  if (!envVars.PATH && process.env.PATH) envVars.PATH = process.env.PATH
223
223
  if (!envVars.HOME) envVars.HOME = homedir()
224
+ const escXml = (s) => s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')
224
225
  const envEntries = Object.entries(envVars)
225
- .map(([k, v]) => `\t\t<key>${k}</key>\n\t\t<string>${v}</string>`)
226
+ .map(([k, v]) => `\t\t<key>${escXml(k)}</key>\n\t\t<string>${escXml(v)}</string>`)
226
227
  .join('\n')
227
228
 
228
229
  return `<?xml version="1.0" encoding="UTF-8"?>