codekin 0.3.6 → 0.3.7

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
@@ -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,17 @@ 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
53
  - **Skill browser** — Browse and invoke `/skills` defined in each repo's `.claude/skills/`
49
54
  - **Command palette** — `Ctrl+K` to quickly search repos, skills, and actions
55
+ - **Approval management** — Persistent approval storage with detailed per-permission revoking
56
+ - **Mobile-friendly** — Responsive layout that works on phones and tablets
57
+ - **Markdown browser** — Browse and view `.md` files directly in the UI
58
+ - **AI Workflows** — Scheduled code and repository audits and maintenance, with support for custom workflows defined as Markdown files
59
+ - **GitHub webhooks** — Automated bugfixing on CI failures via webhook integration
60
+ - **LLM-powered chores** — Optional API keys (Groq, OpenAI, Gemini, Anthropic) for background tasks like session auto-naming
50
61
 
51
62
  ## Upgrade
52
63
 
@@ -79,7 +90,6 @@ All configuration lives in `~/.config/codekin/env`. Edit this file to override d
79
90
  |---|---|---|
80
91
  | `PORT` | `32352` | Server port |
81
92
  | `REPOS_ROOT` | `~/repos` | Root directory scanned for local repositories |
82
- | `GH_ORG` | — | Comma-separated GitHub orgs for repo listing |
83
93
  | `GROQ_API_KEY` | — | Optional. Enables session auto-naming via Llama 4 Scout (free tier at [groq.com](https://groq.com)) |
84
94
  | `OPENAI_API_KEY` | — | Optional. Fallback for session auto-naming via GPT-4o Mini ([platform.openai.com](https://platform.openai.com)) |
85
95
  | `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"?>