Skales DevKit

August 21, 2026 · View on GitHub

This file is what Developer → Docs renders inside Skales. Copy it next to your devkit.json:

cp DEVKIT.md ~/.skales-data/devkit/

Without it, the Docs tab shows a placeholder — the route reads this one file and nothing else.


Enable DevKit

~/.skales-data/devkit/devkit.json:

{
  "enabled": true,
  "version": "0.5.0",
  "api": { "enabled": true, "token": "your-secret-token" },
  "cli": { "enabled": true }
}

The token is a value you choose. It lives at api.token — a top-level token is not read, and every call then answers 500. Restart Skales after creating the file.

The API in one page

Base URL http://localhost:3000, but Skales walks ports 3000–3009, so check which one it took. Every route below except the last two needs Authorization: Bearer <your token>.

MethodPathAnswers
POST/api/cli/chatSSE, data: {"type":...} frames: text{content}, tool_call{tool,args}, tool_result{tool,result}, tool_error{tool,error}, done{sessionId}
GET/api/cli/tools{ tools: [{name, description, enabled}] }
GET/api/cli/model{ provider, model, baseUrl, enabled }
PUT/api/cli/model{ success, provider, model }
GET/api/cli/memory{ memories: [...], count }extracted_at is epoch ms, keywords are relevance_keywords
POST/api/cli/memory{ success, memory }
DELETE/api/cli/memory?id={ success, deleted }
GET/api/cli/cron{ jobs: [...], count }jobs, not tasks
POST/api/cli/cronbody { name, schedule, task }, answers { success, job }
DELETE/api/cli/cron?id={ success } — the query form; the path form has no DELETE
PATCH/api/cli/cron/{id}{ id, enabled }
POST/api/cli/cron/{id}/run{ id, triggered_at, status }
GET/api/cli/statusapp, version, provider, model, counts, uptime
GET/api/cli/sessions{ sessions: [...], count } — camelCase, epoch ms
GET/api/cli/sessions?id={ session: {...} }
DELETE/api/cli/sessions?id={ success, deleted }
GET/POST/DELETE/api/cli/mcp*list, add, test, start, stop, logs, remove
GET/api/cli/devkit-status{ enabled, version } — no auth
GET/api/cli/devkit-docs{ content } — this file — no auth

Full request and response shapes: docs/api-reference.md in the DevKit repository.

CLI

node cli/skales.js status
node cli/skales.js chat "summarize my day"
node cli/skales.js tools
node cli/skales.js cron
node cli/skales.js cron add nightly "0 3 * * *" "Tidy the workspace"
node cli/skales.js mcp list

The token comes from SKALES_DEVKIT_TOKEN, or from the same devkit.json the app reads. The base URL comes from SKALES_URL.