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.
- package/README.md +13 -2
- package/bin/codekin.mjs +2 -1
- package/dist/assets/index-BAdQqYEY.js +182 -0
- package/dist/assets/index-CeZYNLWt.css +1 -0
- package/dist/index.html +2 -2
- package/package.json +8 -2
- package/server/dist/approval-manager.d.ts +44 -8
- package/server/dist/approval-manager.js +262 -23
- package/server/dist/approval-manager.js.map +1 -1
- package/server/dist/claude-process.d.ts +16 -1
- package/server/dist/claude-process.js +36 -12
- package/server/dist/claude-process.js.map +1 -1
- package/server/dist/commit-event-handler.d.ts +41 -0
- package/server/dist/commit-event-handler.js +99 -0
- package/server/dist/commit-event-handler.js.map +1 -0
- package/server/dist/commit-event-hooks.d.ts +35 -0
- package/server/dist/commit-event-hooks.js +177 -0
- package/server/dist/commit-event-hooks.js.map +1 -0
- package/server/dist/crypto-utils.js +10 -5
- package/server/dist/crypto-utils.js.map +1 -1
- package/server/dist/diff-parser.d.ts +23 -0
- package/server/dist/diff-parser.js +236 -0
- package/server/dist/diff-parser.js.map +1 -0
- package/server/dist/session-archive.js +6 -1
- package/server/dist/session-archive.js.map +1 -1
- package/server/dist/session-manager.d.ts +25 -8
- package/server/dist/session-manager.js +370 -30
- package/server/dist/session-manager.js.map +1 -1
- package/server/dist/session-routes.js +101 -4
- package/server/dist/session-routes.js.map +1 -1
- package/server/dist/stepflow-handler.js +19 -5
- package/server/dist/stepflow-handler.js.map +1 -1
- package/server/dist/tsconfig.tsbuildinfo +1 -1
- package/server/dist/types.d.ts +63 -8
- package/server/dist/upload-routes.d.ts +1 -1
- package/server/dist/upload-routes.js +40 -13
- package/server/dist/upload-routes.js.map +1 -1
- package/server/dist/webhook-handler.js +2 -2
- package/server/dist/webhook-handler.js.map +1 -1
- package/server/dist/webhook-workspace.js +5 -2
- package/server/dist/webhook-workspace.js.map +1 -1
- package/server/dist/workflow-loader.d.ts +6 -0
- package/server/dist/workflow-loader.js +11 -0
- package/server/dist/workflow-loader.js.map +1 -1
- package/server/dist/workflow-routes.d.ts +5 -1
- package/server/dist/workflow-routes.js +49 -8
- package/server/dist/workflow-routes.js.map +1 -1
- package/server/dist/ws-message-handler.js +19 -2
- package/server/dist/ws-message-handler.js.map +1 -1
- package/server/dist/ws-server.js +37 -9
- package/server/dist/ws-server.js.map +1 -1
- package/server/workflows/commit-review.md +22 -0
- package/server/workflows/docs-audit.weekly.md +97 -0
- package/dist/assets/index-Cp27uOZO.js +0 -174
- package/dist/assets/index-D3SqBuHB.css +0 -1
package/README.md
CHANGED
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
[](LICENSE)
|
|
4
4
|
[](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
|
+

|
|
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, '&').replace(/</g, '<').replace(/>/g, '>')
|
|
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"?>
|