Repository navigation
Knode v0.2.1 — first release under the Knode name, and the first with a desktop app.
Build CrewAI crews by wiring nodes on a canvas,
then watch them run live: particles flow along the wires you connected, in the order the
crew is actually executing.
AgentCanvas is now Knode. Same product, new name and mark. Canvases saved in the
browser migrate automatically on first load; the desktop app has a new bundle id
(com.knode.desktop), so an older AgentCanvas install is a separate app — install this
one and remove the old one.
Downloads
- macOS (Apple Silicon) —
Knode-0.2.1-arm64.dmg - Windows —
Knode-Setup-0.2.1.exe
Both are unsigned (no Apple Developer / Windows code-signing certificate yet), so the
OS will warn once on first launch: on macOS right-click Knode.app → Open → Open; on
Windows More info → Run anyway. The bundled Python/CrewAI runtime starts itself — no
terminal, Docker or Python needed. The web version (Docker Compose or from source) is
unchanged and remains the primary way to run Knode.
New since v0.1.0
- Desktop app — Electron shell with the backend packaged as a standalone sidecar,
first-run onboarding, API keys stored in the OS keychain, installers built by CI on
every tag. - Publish & Hub — a Publish button previews exactly what leaves your machine
(pre-flight scanner masks keys, internal hosts, local paths, emails), attaches a license
and a preview thumbnail, and walks you through submitting a PR to
knode-hub, a no-login public registry. The
template gallery's Hub tab lists published teams and forks one into a local canvas in
a click, recordingforked_from. - Welcome screen for first-time visitors, with three short in-app videos.
- Per-LLM API key slots — assign a specific key to an LLM node;
openai_compatible
keys are separated from OpenAI's. - Fully English UI — the last Korean strings (built-in templates, dry-run and human
review messages, exported code comments) now follow the UI locale. - Export writes
canvas.py(wascrew.py) plusrequirements.txtand.env.example. - Template editing works like a document: Save overwrites the template you opened;
Edit renames it. Taskdepends onsockets fixed.
Still here from v0.1.0
- Visual crew builder — 14 node types with typed sockets that block incompatible
connections and rejectcontextcycles. - Real execution, not a mock — the graph compiles into an actual
crewai.Crew; node
status, agent thoughts, tool calls and token usage stream back over SSE and reconnect
fromLast-Event-IDwithout gaps. - BYOK — keys live in your browser (session memory by default) and travel as request
headers only; a log-masking layer strips key-shaped strings from every log line. - Local-first — auto-detects a running Ollama; the bundled template runs for $0.
- Dry run, human-in-the-loop review, offline editing while the backend is down,
share links, command palette (Ctrl+K), Docker Compose.
Verification
- 1,482 automated tests — backend pytest 842, frontend vitest 585, Playwright E2E 55; all
green on this tag. - Every acceptance criterion in the build spec was checked against a running system (real
server, real browser, real LLM). Report:docs/ACCEPTANCE.md.
Known limitations
- Self-hosted only. The backend has no authentication or per-IP rate limiting — do not
expose it on a public network as-is. - Desktop builds are unsigned (see above) and macOS is Apple Silicon only.
- Template cards show hand-written cost estimates; the dry-run estimator is the accurate one.
Getting started (web)
cp .env.example .env
docker compose upThen open http://localhost:3000. Needs Node 18.18+ and Python 3.12 if running from source.
Licensed under AGPL-3.0.