From 261eccab41366b1649b99b9d7bebc3efe908c7a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Orell=20B=C3=BChler?= Date: Sat, 22 Aug 2026 12:55:51 +0200 Subject: [PATCH] add direct per-platform downloads to the landing site MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The release assets carry their version in the file name, so GitHub's stable releases/latest/download/ URL cannot address them — which is why the site only ever linked to the releases page, where a non-GitHub visitor has to work out which of eleven files is theirs. assets/js/download.js resolves the real asset URLs from the API instead. It detects the platform (asking the GPU for the Mac's architecture, since Safari exposes no hint and every Mac still reports "MacIntel"), points the hero button at that build, and fills version and size into a platform menu and the three Get-it cards from one call. Every link ships pointing at the releases page and is rewritten in place, so a blocked script or a rate-limited API degrades to what the site did before. It picks the newest release carrying *all three* platforms rather than `/releases/latest`: while a release builds, its slowest bundle has not been uploaded yet, and offering it would strand whoever is on the missing platform. Also brings the copy level with what shipped — 78 tools, staged edits with a reviewable diff, delivery frames, beat snapping, transcript editing, streamed playback, GPU export — and fixes the og:image, which pointed at a screenshot that was never captured. og.png is generated from docs/og-source.html. --- README.md | 68 ++-- docs/img/README.md | 22 +- docs/img/og.png | Bin 0 -> 143970 bytes docs/og-source.html | 48 +++ site/assets/css/kerf.css | 448 ++++++++++++++++++++- site/assets/js/download.js | 281 +++++++++++++ site/hugo.toml | 7 +- site/layouts/_default/baseof.html | 12 +- site/layouts/index.html | 114 ++++-- site/layouts/partials/dl-row.html | 9 + site/layouts/partials/download-button.html | 43 ++ site/layouts/partials/download-grid.html | 42 ++ site/layouts/partials/mock-session.html | 8 +- site/layouts/partials/os-icon.html | 11 + 14 files changed, 1035 insertions(+), 78 deletions(-) create mode 100644 docs/img/og.png create mode 100644 docs/og-source.html create mode 100644 site/assets/js/download.js create mode 100644 site/layouts/partials/dl-row.html create mode 100644 site/layouts/partials/download-button.html create mode 100644 site/layouts/partials/download-grid.html create mode 100644 site/layouts/partials/os-icon.html diff --git a/README.md b/README.md index f052647..f040e3a 100644 --- a/README.md +++ b/README.md @@ -38,19 +38,21 @@ frames it's editing. Nothing is re-encoded until you export. Plenty of tools bolt a chatbot onto a video editor. Kerf inverts that: the editor **is** an API, exposed twice over one shared project — as the GUI you click, and as [Model Context Protocol](https://modelcontextprotocol.io) tools an agent calls. So the -agent isn't scripting a black box; it drives the identical engine, and every edit it -makes shows up **live** in your timeline for you to review. +agent isn't scripting a black box; it drives the identical engine — and its edits are +**staged for review**, so they never move the cut you are looking at. - 🎬 **The agent has eyes.** `get_frame`, `skim_asset` (a contact-sheet montage for finding the good parts), and `preview_timeline` (the composited cut at a given time) return real images the model *sees* — so it can find the right moment and confirm the cut, not guess from metadata. - 🧠 **Same engine, same project.** The MCP server and the webview hold the *same* - `Project`. When the agent trims a clip, your GUI re-renders it instantly. -- 🤝 **You stay in control.** Work is handed back and forth through a **task queue**: you - enqueue plain-language tasks, the agent claims one, does the edits, and marks it *ready* - for you to apply or dismiss. Kerf never edits on its own, and every change is a - revertible entry in the edit history. + `Project` behind one lock — no import/export round-trip, no second copy of the truth, + and the agent previews its own work through the exact graph that renders your export. +- 🤝 **You stay in control.** Agent edits **stage** — they build a *proposal*, not your + cut. The review card shows a real diff (added / cut / moved / retrimmed), you can + *watch* the proposed timeline play, and Apply lands it as one revertible revision. + Work is handed back through a persisted **task queue**, so an agent is safe to leave + running on someone's edit. - ✂️ **Truly non-destructive.** Everything is an EDL over source ranges. Cuts, effects, and keyframes are just data until you export a single `filter_complex`. - 📦 **Runs without FFmpeg dev libraries.** The engine drives the `ffmpeg`/`ffprobe` @@ -63,16 +65,20 @@ makes shows up **live** in your timeline for you to review. | | | | --- | --- | -| **Multi-track NLE** | Bespoke timeline: video/audio/text tracks, free clip positioning with gaps, drag-to-move across tracks, edge-drag trim, razor split, ripple delete, snapping to edges / playhead / **beats**. | -| **Audible playback** | Real Web-Audio playback with J/K/L shuttle + scrub; volume, fades, speed and reverse are auralized and the playhead follows the audio clock. | -| **Analysis** | FFmpeg `silencedetect`, scene detection, audio energy/**beat** grid, and waveforms — all CLI-driven. Optional local **Whisper** transcription. | -| **Effects & color** | Per-clip video (`blur`/`sharpen`/`hue`/`negate`/`vignette`/`chromakey`) and audio (`highpass`/`lowpass`/`EQ`/`compressor`/`gate`) chains, plus transform + color grade. | +| **Multi-track NLE** | Bespoke timeline: video/audio/text tracks, free clip positioning with gaps, drag-to-move across tracks, edge-drag trim, razor split, ripple delete, markers, mute/solo/lock, snapping to edges / playhead / **beats**. | +| **Real playback** | Not a slideshow — one long-lived FFmpeg streams the **composited** cut (every track, effect, keyframe and overlay) paced against the audio clock, with J/K/L shuttle and audible Web-Audio scrub. | +| **Delivery frames** | 16:9 / 9:16 / 1:1 / 4:5 is a property of the **project**, so preview, scrub and export all render the same frame — with platform **safe-area guides** and cover-crop instead of letterboxing. | +| **Analysis & speech** | Silence and scene detection, an onset/**tempo** grid, EBU R128 loudness and speech-vs-music from one decode — plus **transcription in every build**, via FFmpeg's `whisper` filter or in-process whisper.cpp (models fetched on first use). | +| **Cut to the beat** | The tempo grid is drawn on the ruler and snapped to while dragging, and `snap_to_beats` ripples a whole track's cuts onto it, retrimming each clip at its **outgoing** edge. | +| **Effects, color & looks** | Per-clip video (`blur`/`sharpen`/`hue`/`negate`/`vignette`/`chromakey`) and audio (`highpass`/`lowpass`/`EQ`/`compressor`/`gate`) chains, transform + color grade, and one-click **Punchy / Warm / Cool / Faded / B&W** looks. | | **Keyframe animation** | Animated zoom, position, rotation and opacity via piecewise-linear keyframes — the Transform panel auto-keyframes at the playhead. | | **360 reframing** | Cut a normal, flat shot out of **equirect or Insta360 dual-fisheye** footage: aim a virtual camera (yaw / pitch / roll / FOV) and **keyframe the pan**. An **Insta360 lens pair imports as one 360 asset** — Kerf stitches the two capture files into an equirect sphere once and caches it. Spherical sources are detected on import; anything unflagged can be marked by hand. | -| **Titles & captions** | Text overlays / lower-thirds with their own keyframes, and one-click **captions from a transcript** (SRT export too). | +| **Titles & captions** | Text overlays / lower-thirds with their own keyframes, Title / Lower-third / Caption style presets, the system font list, one-click **captions from a transcript**, and SRT export. | +| **Edit by transcript** | The transcript is an editing surface: lines resolve to the clip carrying them, a click seeks, and `×` cuts that sentence out of the timeline and ripples the gap closed. | | **Smart mixing** | Per-track **ducking** (music dips under dialogue via sidechain) and single-pass **loudnorm** to −14 LUFS on export. | -| **Export** | Positional, multi-track `filter_complex` with progress + cancel; **range export** renders just the region between your in/out marks. | -| **Agent workflow** | 60 MCP tools, a persisted task queue, and a fully revertible edit history attributed to user / agent / system. | +| **GPU-accelerated export** | NVENC / QSV / VideoToolbox / AMF are **verified with a real test encode** before being offered, hardware decode falls back to software on its own, and **range export** renders just the region between your in/out marks. | +| **Agent workflow** | 78 MCP tools, **staged edits with a reviewable diff**, a persisted task queue, and a fully revertible edit history attributed to user / agent / system. | +| **Auto-update** | The app updates itself from its own GitHub releases; a bundle only installs if its **minisign signature** verifies against the embedded public key. |
@@ -88,10 +94,13 @@ makes shows up **live** in your timeline for you to review. ### Download a build -Grab the installer for your platform from the -[**latest release**](https://github.com/OrellBuehler/kerf/releases/latest) — `.dmg`/`.app` -(macOS), `.AppImage`/`.deb` (Linux), or `.msi`/`.exe` (Windows). macOS and Linux builds -expect a system FFmpeg on `PATH`; the Windows build bundles it. +The [**Kerf site**](https://orellbuehler.github.io/kerf/#get) has a direct download +button for your platform, or grab the installer from the +[**latest release**](https://github.com/OrellBuehler/kerf/releases/latest) — `.dmg` +(macOS, Apple silicon + Intel), `.AppImage`/`.deb`/`.rpm` (Linux), or `.exe`/`.msi` +(Windows). macOS and Linux builds expect a system FFmpeg on `PATH`; the Windows build +bundles it. The macOS build is unsigned, so open it once with right-click → **Open**. +Once installed, Kerf updates itself from its own releases. ### Or build from source @@ -131,7 +140,7 @@ Now ask the agent to work on the project you have open — _"skim the interview the dead air, and drop in captions."_ It will claim a task, use the tools below, and hand back a reviewable result. -### The tools (59) +### The tools (78)
See / analyze @@ -146,8 +155,10 @@ the last three return images the model can see. Cut & arrange `cut_clip` · `add_clip_to_timeline` · `split_at` · `trim` · `reorder` · `move_clip` · -`remove` · `ripple_delete` · `cut_clip_range` · `add_track` · `remove_track` · -`set_track_duck` · `remove_silence` · `extract_audio` · `concatenate` +`remove` · `ripple_delete` · `cut_clip_range` · `duplicate_clips` · `set_clip_enabled` · +`add_track` · `remove_track` · `set_track_duck` · `set_track_muted` · `set_track_solo` · +`set_track_locked` · `add_marker` · `update_marker` · `remove_marker` · `remove_silence` · +`snap_to_beats` · `extract_audio` · `concatenate`
@@ -158,18 +169,20 @@ the last three return images the model can see. `add_keyframe` · `clear_keyframes` · `set_reframe` · `clear_reframe` · `set_reframe_keyframes` · `add_reframe_keyframe` · `add_overlay` · `update_overlay` · `remove_overlay` · `set_overlay_keyframes` · `captions_from_transcript` · `export_srt` · -`list_fonts` +`list_fonts` · `set_delivery_format` · `set_asset_projection`
Render & hand-off -`export` · `list_tasks` · `add_task` · `claim_next_task` · `complete_task` · `fail_task` · -`resolve_task` · `remove_task` · `history` · `undo` · `redo` · `revert_to` +`export` · `export_capabilities` · `stage_edits` · `staged_diff` · `apply_staged_edits` · +`discard_staged_edits` · `revision_diff` · `list_tasks` · `add_task` · `claim_next_task` · +`complete_task` · `fail_task` · `resolve_task` · `remove_task` · `history` · `undo` · +`redo` · `revert_to` · `transcription_status` · `download_speech_model`
-Every mutating tool emits a `project-changed` event, so edits appear in the GUI as the -agent makes them. +Every mutating tool emits a `project-changed` event, so the agent's proposal appears in +the GUI for review as it is built — the live cut only moves when *you* apply it. --- @@ -283,8 +296,7 @@ preview, transcript, analysis, effects, keyframes, captions, playback and export wired to real backend state, and the MCP surface is exercised end-to-end. **Roadmap:** a live activity stream pushed from the MCP server (the queue is polled -today), richer staged-edit diffs in the review step, and auralized effect chains in -preview playback. +today), transitions beyond crossfade / dip-to-black, and audible reverse shuttle. Contributions welcome — see [`CONTRIBUTING.md`](./CONTRIBUTING.md). diff --git a/docs/img/README.md b/docs/img/README.md index 48ddc18..f00eff5 100644 --- a/docs/img/README.md +++ b/docs/img/README.md @@ -17,7 +17,7 @@ timeline — a few clips across two or three tracks, a waveform, a scene marker | Filename | What to capture | Used by | | ---------------------------- | ------------------------------------------------------------------------------- | ------------------------ | -| `screenshot-editor.png` | The **full editor** window — title bar, media bin, preview, multi-track timeline. Hero shot. | README + site `og:image` | +| `screenshot-editor.png` | The **full editor** window — title bar, media bin, preview, multi-track timeline. Hero shot. | README | | `screenshot-agent.png` | The **agent panel** — task queue (a `ready` task with Apply/Dismiss) + history. | README | | `screenshot-inspector.png` | The **inspector** — an effects chain, the Transform/keyframe panel, or overlays. | README | @@ -31,6 +31,20 @@ Tips: - Keep the amber playhead visible — it's the brand's signature. Until these exist, the `README` shows broken-image placeholders where they go. The -landing site no longer embeds them — it renders animated CSS/SVG mockups instead — but -its `og:image` still points at `screenshot-editor.png`, so social-link previews stay -broken until the hero shot lands. +landing site no longer embeds them — it renders animated CSS/SVG mockups instead. + +## `og.png` — the social-card image + +`og.png` (1200×630) is the site's `og:image`, and it is **generated, not captured**: +[`../og-source.html`](../og-source.html) is the layout, rendered headless at exactly +that size. It lives one level up so the Pages build, which mounts *this* folder at +`static/img/`, does not publish it as a page. + +```bash +google-chrome --headless=new --disable-gpu --hide-scrollbars \ + --screenshot=docs/img/og.png --window-size=1200,630 \ + --virtual-time-budget=6000 "file://$PWD/docs/og-source.html" +``` + +The budget matters: the page pulls Space Grotesk / Inter / JetBrains Mono from Google +Fonts, and a shorter one screenshots the fallback faces. diff --git a/docs/img/og.png b/docs/img/og.png new file mode 100644 index 0000000000000000000000000000000000000000..31637faab426200dc46cd44edc4256886c6ad2c8 GIT binary patch literal 143970 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%0DEF#+>Wkefiea|K=?}~= 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

tw*;F5GTOM+0n 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

Zq8> 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 + + +

+
+
+ + + + + + Kerf +
+

The video editor
your AI can drive.

+

A non-destructive desktop NLE with an embedded MCP server — the agent + drives the same engine as the GUI, and can see the frames it edits.

+
NON-DESTRUCTIVE · MCP-NATIVE · FFMPEG-BACKED · macOS · WINDOWS · LINUX
+
+
+ + + +
+ diff --git a/site/assets/css/kerf.css b/site/assets/css/kerf.css index 4d74a4f..72188ba 100644 --- a/site/assets/css/kerf.css +++ b/site/assets/css/kerf.css @@ -187,7 +187,9 @@ pre { background: var(--surface-hover); } @media (max-width: 640px) { - .nav-links a:not(.ghost-link) { + /* Only the download chip survives — it is the primary action, and the + section links are all reachable by scrolling anyway. */ + .nav-links a:not(.nav-dl) { display: none; } } @@ -221,8 +223,8 @@ pre { h1 { font-family: var(--font-display); font-weight: 700; - font-size: clamp(38px, 6.4vw, 68px); - line-height: 1.02; + font-size: clamp(36px, 5.4vw, 60px); + line-height: 1.04; letter-spacing: -0.025em; margin: 18px 0 0; } @@ -689,6 +691,12 @@ code { border-bottom-color: rgba(226, 157, 46, 0.4); } +/* The open download menu has to clear the band below it: every `.wrap` sits at + z-index 1, so DOM order alone would paint the stat strip over the hero. */ +.hero .wrap { + z-index: 20; +} + /* Wider hero on large screens: copy + shot side by side */ @media (min-width: 1000px) { .hero { @@ -1461,6 +1469,41 @@ html.js .stagger.in > *:nth-child(n + 9) { transition-delay: 540ms; } 89% { box-shadow: 0 0 0 1px rgba(234, 177, 78, 0.55), 0 0 34px rgba(226, 157, 46, 0.25); } 94%, 100% { box-shadow: var(--shadow-lg); } } +.ms-diff { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 6px 10px; + padding: 8px 14px; + border-top: 1px solid var(--border-subtle); + font-size: 10px; +} +.ms-diff .lead { + color: var(--text-secondary); + font-weight: 500; +} +.ms-diff i { + font-style: normal; + padding: 1px 6px; + border-radius: 3px; + border: 1px solid transparent; +} +.ms-diff .add { + color: #6fd39b; + background: rgba(40, 197, 133, 0.1); + border-color: rgba(40, 197, 133, 0.28); +} +.ms-diff .cut { + color: #f08a78; + background: rgba(241, 84, 63, 0.1); + border-color: rgba(241, 84, 63, 0.28); +} +.ms-diff .shift { + color: var(--kerf-300); + background: rgba(226, 157, 46, 0.1); + border-color: rgba(226, 157, 46, 0.3); +} + .ms-foot { padding: 9px 14px; border-top: 1px solid var(--border-subtle); @@ -1610,6 +1653,402 @@ html.js .stagger.in > *:nth-child(n + 9) { transition-delay: 540ms; } border-color: var(--border-strong); } +/* ============================================================= + Downloads. + The links ship pointing at the releases page and are rewritten + in place by assets/js/download.js once it has resolved the real + asset URLs — so every state below has to read correctly with + the script blocked, too. + ============================================================= */ + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +/* ---- The split button ---- */ +.dl { + position: relative; + display: inline-flex; + align-items: stretch; +} +.dl-main { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + padding-right: 18px; +} +.dl-ic { + width: 15px; + height: 15px; + flex: none; + opacity: 0.9; +} +.dl-toggle { + position: relative; + padding: 0 12px; + margin-left: 1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + box-shadow: 0 8px 26px rgba(226, 157, 46, 0.28); + cursor: pointer; + font: inherit; +} +/* One seam between the two halves, drawn on the dark button face. */ +.dl-toggle::before { + content: ""; + position: absolute; + left: -1px; + top: 9px; + bottom: 9px; + width: 1px; + background: rgba(26, 18, 5, 0.25); +} +.dl-chev { + width: 14px; + height: 14px; + transition: transform 160ms var(--ease-out); +} +.dl-toggle[aria-expanded="true"] .dl-chev { + transform: rotate(180deg); +} + +/* ---- The platform menu ---- */ +.dl-menu { + position: absolute; + z-index: 30; + top: calc(100% + 10px); + left: 0; + min-width: 290px; + padding: 8px; + background: var(--surface-raised); + border: 1px solid var(--border-strong); + border-radius: var(--radius-xl); + box-shadow: var(--shadow-pop); +} +.dl-menu[hidden] { + display: none; +} +html.js .dl-menu:not([hidden]) { + animation: dl-pop 150ms var(--ease-out); +} +@keyframes dl-pop { + from { + opacity: 0; + transform: translateY(-6px); + } +} +.dl-menu-head { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 10px; + padding: 4px 10px 8px; + font-size: 11px; + font-weight: 700; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--text-muted); +} +.dl-ver { + font-family: var(--font-mono); + font-size: 11px; + letter-spacing: 0; + text-transform: none; + color: var(--kerf-400); +} +.dl-group + .dl-group { + margin-top: 6px; + padding-top: 6px; + border-top: 1px solid var(--border-subtle); +} +.dl-group-head { + display: flex; + align-items: center; + gap: 8px; + padding: 5px 10px 4px; + font-size: 12px; + font-weight: 600; + color: var(--text-secondary); +} +.os-ic { + flex: none; + opacity: 0.75; +} +.dl-menu-foot { + display: block; + margin-top: 6px; + padding: 9px 10px 5px; + border-top: 1px solid var(--border-subtle); + font-size: 12.5px; + color: var(--text-muted); +} +.dl-menu-foot:hover { + color: var(--kerf-400); +} + +/* ---- One downloadable file ---- */ +.dl-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 14px; + padding: 8px 10px; + border-radius: var(--radius-lg); + font-size: 14px; + color: var(--text-primary); + transition: + background 120ms, + color 120ms; +} +.dl-row[hidden] { + display: none; +} +.dl-row:hover { + background: var(--surface-hover); +} +.dl-row-name { + font-weight: 500; +} +.dl-row-meta { + display: inline-flex; + align-items: baseline; + gap: 9px; + font-family: var(--font-mono); + font-size: 11.5px; + color: var(--text-muted); + white-space: nowrap; +} +.dl-ext { + color: var(--text-secondary); +} +.dl-size:empty { + display: none; +} +/* The row the hero button points at. */ +.dl-row.is-pick .dl-row-name::after { + content: "Detected"; + margin-left: 9px; + padding: 1px 7px; + border-radius: var(--radius-full); + background: rgba(226, 157, 46, 0.13); + border: 1px solid rgba(226, 157, 46, 0.3); + color: var(--kerf-300); + font-family: var(--font-sans); + font-size: 10.5px; + font-weight: 600; + letter-spacing: 0.03em; + vertical-align: 1px; +} + +/* ---- Hero meta lines ---- */ +.dl-meta { + margin: 14px 0 0; + font-family: var(--font-mono); + font-size: 12.5px; + color: var(--kerf-300); +} +.dl-meta[hidden] { + display: none; +} +.dl-note { + margin: 10px 0 0; + font-size: 13px; + color: var(--text-muted); +} +.dl-note a { + color: var(--text-secondary); + border-bottom: 1px solid var(--border-strong); +} +.dl-note a:hover { + color: var(--kerf-400); +} +.get-cta { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + gap: 16px; + margin-top: 26px; +} +.get-cta .dl-meta { + margin: 0; +} + +/* ---- The Get-it platform cards ---- */ +.dl-cards { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 18px; + margin-bottom: 22px; +} +@media (max-width: 860px) { + .dl-cards { + grid-template-columns: 1fr; + } +} +.dl-card { + display: flex; + flex-direction: column; + min-width: 0; + padding: 20px 18px 18px; + background: var(--surface-raised); + border: 1px solid var(--border-default); + border-radius: var(--radius-2xl); + transition: + border-color 200ms, + transform 200ms var(--ease-out); +} +.dl-card:hover { + transform: translateY(-2px); + border-color: var(--border-strong); +} +.dl-card.is-mine { + border-color: rgba(226, 157, 46, 0.4); + box-shadow: 0 0 0 1px rgba(226, 157, 46, 0.12); +} +.dl-card header { + display: flex; + align-items: center; + gap: 9px; + margin-bottom: 12px; + padding-bottom: 12px; + border-bottom: 1px solid var(--border-subtle); +} +.dl-card h3 { + flex: 1; + margin: 0; + font-family: var(--font-display); + font-weight: 600; + font-size: 17px; +} +.dl-card .os-ic { + opacity: 0.85; +} +.dl-mine { + display: none; + padding: 2px 9px; + border-radius: var(--radius-full); + background: rgba(226, 157, 46, 0.13); + border: 1px solid rgba(226, 157, 46, 0.3); + color: var(--kerf-300); + font-size: 10.5px; + font-weight: 600; + letter-spacing: 0.03em; +} +.dl-card.is-mine .dl-mine { + display: inline-block; +} +.dl-card .dl-row { + margin: 0 -8px; + padding: 8px; +} +.dl-card .dl-row.is-pick .dl-row-name::after { + content: none; +} +.dl-card .fine { + /* auto so the fine print sits on one baseline across cards of unequal + row counts; the padding keeps a gap when there is no slack to take. */ + margin: auto 0 0; + padding-top: 16px; + border-top: 1px solid var(--border-subtle); + font-size: 12.5px; + line-height: 1.55; + color: var(--text-muted); +} +.dl-card .fine code { + font-size: 0.92em; +} + +/* ============================================================= + Stat strip — the numbers that are actually true. + ============================================================= */ +.stats-band { + border-top: 1px solid var(--border-subtle); + border-bottom: 1px solid var(--border-subtle); + background: rgba(10, 12, 15, 0.4); +} +.stats { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 8px; + padding-top: 26px; + padding-bottom: 26px; +} +@media (max-width: 780px) { + .stats { + grid-template-columns: repeat(2, 1fr); + gap: 20px 8px; + } +} +.stat { + display: flex; + flex-direction: column; + gap: 4px; + padding-left: 16px; + border-left: 1px solid var(--border-subtle); +} +.stat b { + font-family: var(--font-display); + font-size: clamp(19px, 2.4vw, 26px); + font-weight: 700; + letter-spacing: -0.02em; + color: var(--kerf-400); + line-height: 1.1; +} +.stat span { + font-size: 12.5px; + line-height: 1.45; + color: var(--text-muted); +} +.stat:first-child { + padding-left: 0; + border-left: 0; +} +@media (max-width: 780px) { + .stat:nth-child(3) { + padding-left: 0; + border-left: 0; + } +} + +/* Nav: a download link that reads as the primary action. */ +.nav-dl { + padding: 7px 15px; + border-radius: var(--radius-full); + background: var(--kerf-500); + color: #1a1205 !important; + font-weight: 600; +} +.nav-dl:hover { + background: var(--kerf-400); +} +@media (max-width: 640px) { + .nav-links { + gap: 12px; + } +} + +/* The staged-review tool reads as neither "sees" nor plain. */ +.chip.stage { + color: var(--kerf-300); + border-color: rgba(226, 157, 46, 0.28); + background: rgba(226, 157, 46, 0.07); +} + +/* Keyboard focus was invisible on the dark surfaces. */ +:focus-visible { + outline: 2px solid var(--kerf-400); + outline-offset: 2px; + border-radius: var(--radius-md); +} + /* ---- Reduced motion: freeze everything on its legible still ---- */ @media (prefers-reduced-motion: reduce) { html.js .reveal, @@ -1634,4 +2073,7 @@ html.js .stagger.in > *:nth-child(n + 9) { transition-delay: 540ms; } .flow-svg .pulse { display: none; } + html.js .dl-menu:not([hidden]) { + animation: none; + } } diff --git a/site/assets/js/download.js b/site/assets/js/download.js new file mode 100644 index 0000000..a5d33cb --- /dev/null +++ b/site/assets/js/download.js @@ -0,0 +1,281 @@ +/* ============================================================= + Direct downloads. + + Release assets carry their version in the file name + (`Kerf_0.19.1_x64-setup.exe`), so GitHub's stable + `releases/latest/download/` URL cannot address them. This + resolves the real asset URLs from the API instead, points the + hero button at the visitor's own platform, and fills in the + version and size on every platform row. + + Progressive enhancement: every link ships pointing at the + releases page, so the page stays usable with this file blocked + or the API unreachable. + ============================================================= */ +(function () { + "use strict"; + + var root = document.querySelector("[data-dl]"); + if (!root || !window.fetch) return; + + var REPO = root.getAttribute("data-repo"); + if (!REPO) return; + + function all(sel) { + return Array.prototype.slice.call(root.querySelectorAll(sel)); + } + + /* --- The asset table ------------------------------------------------- + One entry per downloadable file we publish. `match` recognizes the + asset by name, so `.sig` files and latest.json never match. */ + var ASSETS = [ + { key: "windows-exe", os: "windows", sub: "Installer (.exe)", match: /_x64-setup\.exe$/i }, + { key: "windows-msi", os: "windows", sub: "MSI package", match: /_x64_en-US\.msi$/i }, + { key: "macos-arm", os: "macos", sub: "Apple silicon (.dmg)", match: /_aarch64\.dmg$/i }, + { key: "macos-intel", os: "macos", sub: "Intel (.dmg)", match: /_x64\.dmg$/i }, + { key: "linux-appimage", os: "linux", sub: "AppImage", match: /_amd64\.AppImage$/i }, + { key: "linux-deb", os: "linux", sub: "Debian / Ubuntu (.deb)", match: /_amd64\.deb$/i }, + { key: "linux-rpm", os: "linux", sub: "Fedora / RHEL (.rpm)", match: /\.x86_64\.rpm$/i } + ]; + + /* Which file a visitor on this platform actually wants. */ + var PREFERRED = { + windows: "windows-exe", + "macos:arm64": "macos-arm", + "macos:x64": "macos-intel", + linux: "linux-appimage" + }; + + var OS_NAME = { windows: "Windows", macos: "macOS", linux: "Linux" }; + + /* --- Platform detection ---------------------------------------------- */ + + function detectOs() { + var ua = navigator.userAgent || ""; + // Phones and tablets get no desktop build: leave them undetected so the + // button stays a neutral "Download" pointing at the release page. + if (/Android|iPhone|iPad|iPod/i.test(ua)) return ""; + var hint = (navigator.userAgentData && navigator.userAgentData.platform) || ""; + var p = hint || navigator.platform || ""; + if (/Win/i.test(p) || /Windows/i.test(ua)) return "windows"; + if (/Mac/i.test(p) || /Mac OS X/i.test(ua)) return "macos"; + if (/Linux|X11|CrOS/i.test(p) || /Linux|X11|CrOS/i.test(ua)) return "linux"; + return ""; + } + + // Safari exposes no architecture hint and every Mac still reports + // "MacIntel" in navigator.platform — so ask the GPU. Apple silicon renders + // through "Apple GPU" / "Apple M…"; an Intel Mac names Intel, AMD or NVIDIA. + function macIsAppleSilicon() { + try { + var gl = + document.createElement("canvas").getContext("webgl") || + document.createElement("canvas").getContext("experimental-webgl"); + if (!gl) return null; + var dbg = gl.getExtension("WEBGL_debug_renderer_info"); + if (!dbg) return null; + var r = String(gl.getParameter(dbg.UNMASKED_RENDERER_WEBGL) || ""); + if (/Intel|AMD|Radeon|NVIDIA|GeForce/i.test(r)) return false; + if (/Apple/i.test(r)) return true; + } catch (e) { + /* blocked by a privacy setting — fall through to "unknown" */ + } + return null; + } + + /* --- Release lookup --------------------------------------------------- + Not `/releases/latest`: publishing a tag makes it "latest" some 25 + minutes before the slowest bundle finishes uploading, so the newest + release can legitimately carry no assets yet. Walk back to the newest + one that actually has files. */ + + var CACHE_KEY = "kerf.dl.v1"; + var CACHE_MS = 30 * 60 * 1000; + + function cached() { + try { + var v = JSON.parse(sessionStorage.getItem(CACHE_KEY) || "null"); + return v && Date.now() - v.at < CACHE_MS ? v.data : null; + } catch (e) { + return null; + } + } + + function store(data) { + try { + sessionStorage.setItem(CACHE_KEY, JSON.stringify({ at: Date.now(), data: data })); + } catch (e) { + /* private mode — just skip the cache */ + } + } + + function resolve(rel) { + var files = {}; + var oses = {}; + (rel.assets || []).forEach(function (a) { + ASSETS.forEach(function (spec) { + if (!files[spec.key] && spec.match.test(a.name)) { + files[spec.key] = { url: a.browser_download_url, size: a.size }; + oses[spec.os] = true; + } + }); + }); + var n = Object.keys(files).length; + if (!n) return null; + return { + tag: rel.tag_name, + url: rel.html_url, + files: files, + complete: oses.windows && oses.macos && oses.linux + }; + } + + /* The newest release carrying all three platforms. A release whose slowest + bundle is still uploading has some but not all, and offering it would + leave whoever is on the missing platform with no direct link at all — so + fall back to the newest complete one, and only settle for a partial + release if the whole fetched window is partial. */ + function pickRelease(list) { + var partial = null; + for (var i = 0; i < list.length; i++) { + if (list[i].draft || list[i].prerelease) continue; + var got = resolve(list[i]); + if (!got) continue; + if (got.complete) return got; + if (!partial) partial = got; + } + return partial; + } + + function fetchRelease() { + var hit = cached(); + if (hit) return Promise.resolve(hit); + return fetch("https://api.github.com/repos/" + REPO + "/releases?per_page=10", { + headers: { Accept: "application/vnd.github+json" } + }) + .then(function (r) { + if (!r.ok) throw new Error("github " + r.status); + return r.json(); + }) + .then(function (list) { + var data = Array.isArray(list) && pickRelease(list); + if (!data) throw new Error("no release with assets"); + store(data); + return data; + }); + } + + /* --- Rendering -------------------------------------------------------- */ + + function mb(bytes) { + if (!bytes) return ""; + var m = bytes / 1048576; + return (m >= 100 ? Math.round(m) : m.toFixed(1)) + " MB"; + } + + function specFor(key) { + for (var i = 0; i < ASSETS.length; i++) if (ASSETS[i].key === key) return ASSETS[i]; + return null; + } + + function apply(data) { + root.classList.add("dl-live"); + + // Every platform row on the page — hero menu and the Get-it grid alike. + ASSETS.forEach(function (spec) { + var file = data.files[spec.key]; + all('[data-dl-asset="' + spec.key + '"]').forEach(function (row) { + if (!file) { + row.setAttribute("hidden", ""); + return; + } + row.removeAttribute("hidden"); + row.href = file.url; + row.removeAttribute("target"); + row.removeAttribute("rel"); + var size = row.querySelector("[data-dl-size]"); + if (size) size.textContent = mb(file.size); + }); + }); + + all("[data-dl-version]").forEach(function (el) { + el.textContent = data.tag; + el.removeAttribute("hidden"); + }); + + var os = detectOs(); + if (!os) return; + + var wantKey = PREFERRED[os]; + if (os === "macos") { + // Unknown architecture keeps Apple silicon — the overwhelming majority + // of Macs in use — and the Intel build stays one click away in the menu. + wantKey = PREFERRED[macIsAppleSilicon() === false ? "macos:x64" : "macos:arm64"]; + } + + var spec = specFor(wantKey); + var file = spec && data.files[spec.key]; + if (!file) return; + + all("[data-dl-primary]").forEach(function (main) { + main.href = file.url; + main.removeAttribute("target"); + main.removeAttribute("rel"); + var label = main.querySelector("[data-dl-label]"); + if (label) label.textContent = "Download for " + OS_NAME[spec.os]; + }); + + all("[data-dl-meta]").forEach(function (meta) { + meta.textContent = [data.tag, spec.sub, mb(file.size)].filter(Boolean).join(" · "); + meta.removeAttribute("hidden"); + }); + + // Show the visitor where the button points. + all('[data-dl-asset^="' + spec.os + '"]').forEach(function (row) { + row.classList.add("is-mine"); + }); + all('[data-dl-asset="' + spec.key + '"]').forEach(function (row) { + row.classList.add("is-pick"); + }); + all('[data-dl-card="' + spec.os + '"]').forEach(function (card) { + card.classList.add("is-mine"); + }); + } + + /* --- The split button's menu ------------------------------------------ */ + + function wireMenu(menu) { + var wrap = menu.closest(".dl"); + var toggle = wrap && wrap.querySelector("[data-dl-toggle]"); + if (!toggle) return; + + function open(on) { + toggle.setAttribute("aria-expanded", on ? "true" : "false"); + if (on) menu.removeAttribute("hidden"); + else menu.setAttribute("hidden", ""); + } + + toggle.addEventListener("click", function (e) { + e.preventDefault(); + open(toggle.getAttribute("aria-expanded") !== "true"); + }); + document.addEventListener("click", function (e) { + if (!wrap.contains(e.target)) open(false); + }); + document.addEventListener("keydown", function (e) { + if (e.key === "Escape") open(false); + }); + menu.addEventListener("click", function (e) { + if (e.target && e.target.closest && e.target.closest("a")) open(false); + }); + open(false); + } + + all("[data-dl-menu]").forEach(wireMenu); + + fetchRelease().then(apply, function () { + /* Offline, rate-limited, or no published assets: the links already point + at the releases page, which is the right destination anyway. */ + root.classList.add("dl-fallback"); + }); +})(); diff --git a/site/hugo.toml b/site/hugo.toml index a1d4e86..b433250 100644 --- a/site/hugo.toml +++ b/site/hugo.toml @@ -7,11 +7,16 @@ enableRobotsTXT = true disableKinds = ["taxonomy", "term", "RSS", "sitemap"] [params] - description = "Kerf is a non-destructive, FFmpeg-backed desktop video editor with an embedded MCP server, so an LLM can analyze your footage and assemble the cut through the same engine the GUI uses — and can see the frames it edits." + description = "Kerf is a non-destructive, FFmpeg-backed desktop video editor with an embedded MCP server, so an LLM can analyze your footage and assemble the cut through the same engine the GUI uses — and can see the frames it edits. Free download for macOS, Windows and Linux." tagline = "The non-destructive video editor your AI can drive." github = "https://github.com/OrellBuehler/kerf" + # owner/name — download.js resolves release assets through the GitHub API, + # because the asset file names carry the version and so cannot be addressed + # by the stable releases/latest/download/ URL. + repo = "OrellBuehler/kerf" releases = "https://github.com/OrellBuehler/kerf/releases/latest" mcpUrl = "http://127.0.0.1:7777/mcp" + toolCount = 78 [minify] minifyOutput = true diff --git a/site/layouts/_default/baseof.html b/site/layouts/_default/baseof.html index 4c4a6e4..8f41df8 100644 --- a/site/layouts/_default/baseof.html +++ b/site/layouts/_default/baseof.html @@ -6,10 +6,18 @@ {{ .Title }} + + + - + {{/* docs/img is mounted at static/img, so this is the same file the repo + README can use — see docs/img/README.md for how it is regenerated. */}} + + + + @@ -46,5 +54,7 @@ io.observe(el); }); + {{ $dl := resources.Get "js/download.js" | minify | fingerprint }} + diff --git a/site/layouts/index.html b/site/layouts/index.html index 2cb9796..8912065 100644 --- a/site/layouts/index.html +++ b/site/layouts/index.html @@ -2,6 +2,7 @@ {{ $gh := .Site.Params.github }} {{ $rel := .Site.Params.releases }} {{ $mcp := .Site.Params.mcpUrl }} +{{ $tools := .Site.Params.toolCount }}
@@ -14,13 +15,16 @@
-
+{{/* One `data-dl` scope for the whole page: download.js fills the hero menu and + the Get-it cards from a single GitHub API call. */}} +
@@ -34,10 +38,12 @@

The video editor
your AI can drive.

it edits. Nothing is re-encoded until you export.

- Download + {{ partial "download-button.html" (dict "Site" .Site "id" "hero") }} View source - How the agent edits →
+ +

Free for noncommercial use · macOS · Windows · Linux · + all builds & requirements

{{ partial "mock-editor.html" . }} @@ -46,6 +52,16 @@

The video editor
your AI can drive.

+ +
+
+
{{ $tools }}MCP tools over one live project
+
0re-encodes before you export
+
3platforms, signed auto-updates
+
16:9 · 9:16 · 1:1delivery frames with safe areas
+
+
+
@@ -55,8 +71,8 @@

Most tools bolt a chatbot onto an editor.
Kerf makes the editor an 

The same Project is exposed twice — as the GUI you click and as Model Context Protocol - tools an agent calls. It doesn't script a black box; it drives the identical engine, - and every edit shows up live for you to review. + tools an agent calls. It doesn't script a black box; it drives the identical engine — + and its edits are staged for review, never applied behind your back.

@@ -75,21 +91,21 @@

The agent has eyes

🔗

Same engine, same project

-

The MCP server and the webview hold the same project behind one lock. When - the agent trims a clip, your GUI re-renders it instantly — no import/export - round-trip, no second copy of the truth.

+

The MCP server and the webview hold the same project behind one lock. No + import/export round-trip, no second copy of the truth — and the agent previews its + own work through the exact graph that renders your export.

-
🤝
-

You stay in control

-

Work is handed back through a task queue: you enqueue plain-language tasks, - the agent marks one ready, and you apply or dismiss. Kerf never edits on its - own, and every change is revertible.

+
📋
+

Staged, then reviewed

+

Agent edits build a proposal, not your cut. The review card shows a real + diff — added, cut, moved, retrimmed — and you can watch the proposed timeline + play, then apply it as one revertible revision, or discard it.

{{ partial "mock-session.html" . }} -
One loop of a real session: skim → cut → preview → hand back. You apply — or dismiss.
+
One loop of a real session: skim → cut → preview → hand back a diff. You apply — or discard.
@@ -102,7 +118,8 @@

You stay in control

A real NLE — not a scaffold.

Everything below is wired to real backend state and renders from a pure, unit-tested export graph. Clip positions, gaps, track layering, effects, keyframes, - overlays, ducking and loudnorm all come out of one filter_complex.

+ overlays, ducking and loudnorm all come out of one filter_complex — + the same one that draws your preview.

{{ partial "edl-diagram.html" . }}
@@ -110,15 +127,18 @@

A real NLE — not a scaffold.

keyframes edit that data — sources are read once, at export.
- {{ partial "feature.html" (dict "t" "Multi-track NLE" "d" "Bespoke timeline: video / audio / text tracks, free positioning with gaps, drag across tracks, edge-drag trim, razor split, ripple delete, snapping to edges, the playhead and beats.") }} - {{ partial "feature.html" (dict "t" "Audible playback" "d" "Real Web-Audio playback with J/K/L shuttle and scrub; volume, fades, speed and reverse are auralized and the playhead follows the audio clock.") }} - {{ partial "feature.html" (dict "t" "Analysis" "d" "FFmpeg silence detection, scene detection, an audio energy / beat grid and waveforms — all CLI-driven. Optional local Whisper transcription.") }} - {{ partial "feature.html" (dict "t" "Effects & color" "d" "Per-clip video (blur / sharpen / hue / negate / vignette / chroma-key) and audio (highpass / lowpass / EQ / compressor / gate) chains, plus transform and color grade.") }} - {{ partial "feature.html" (dict "t" "Keyframe animation" "d" "Animated zoom, position, rotation and opacity via piecewise-linear keyframes — the Transform panel auto-keyframes at the playhead.") }} - {{ partial "feature.html" (dict "t" "360 reframing" "d" "Cut a normal, flat shot out of equirect or Insta360 dual-fisheye footage: aim a virtual camera with yaw / pitch / roll / FOV and keyframe the pan. Spherical sources are detected on import.") }} - {{ partial "feature.html" (dict "t" "Titles & captions" "d" "Text overlays and lower-thirds with their own keyframes, plus one-click captions from a transcript and SRT export.") }} - {{ partial "feature.html" (dict "t" "Smart mixing" "d" "Per-track ducking dips music under dialogue via sidechain, and a single-pass loudnorm brings the final mix to −14 LUFS on export.") }} - {{ partial "feature.html" (dict "t" "Export" "d" "Positional, multi-track filter_complex with progress and cancel; range export renders just the region between your in / out marks.") }} + {{ partial "feature.html" (dict "t" "Multi-track NLE" "d" "Video / audio / text tracks with free positioning and gaps, drag across tracks, edge-drag trim, razor split, ripple delete, markers, mute / solo / lock, and snapping to edges, the playhead and beats.") }} + {{ partial "feature.html" (dict "t" "Real playback" "d" "Not a slideshow: one long-lived FFmpeg streams the composited cut — every track, effect, keyframe and overlay — paced against the audio clock, with J/K/L shuttle and audible Web-Audio scrub.") }} + {{ partial "feature.html" (dict "t" "Delivery frames" "d" "Cut for the shape you ship: 16:9, 9:16, 1:1 or 4:5 is a property of the project, so preview, scrub and export all render the same frame — with platform safe-area guides and cover-crop instead of letterboxing.") }} + {{ partial "feature.html" (dict "t" "Analysis & speech" "d" "Silence and scene detection, an onset / tempo grid, EBU R128 loudness and speech-vs-music from one decode — plus transcription in every build, via FFmpeg's whisper filter or in-process whisper.cpp.") }} + {{ partial "feature.html" (dict "t" "Cut to the beat" "d" "Tempo is mapped onto timeline time as a confidence-gated beat grid the ruler draws and drags snap to — then one call ripples a whole track's cuts onto it, retrimming each clip at its outgoing edge.") }} + {{ partial "feature.html" (dict "t" "Effects, color & looks" "d" "Per-clip video (blur / sharpen / hue / vignette / chroma-key) and audio (highpass / lowpass / EQ / compressor / gate) chains, a transform and color grade, and one-click Punchy / Warm / Cool / Faded / B&W looks.") }} + {{ partial "feature.html" (dict "t" "Keyframe animation" "d" "Zoom, position, rotation and opacity animate over piecewise-linear keyframes — the Transform panel auto-keyframes at the playhead and shows the sampled pose.") }} + {{ partial "feature.html" (dict "t" "360 & Insta360" "d" "Cut a normal, flat shot out of spherical footage: aim a virtual camera with yaw / pitch / roll / FOV and keyframe the pan. An Insta360 lens pair imports as one asset — Kerf stitches the two fisheyes into an equirect sphere and caches it.") }} + {{ partial "feature.html" (dict "t" "Titles & captions" "d" "Text overlays and lower-thirds with their own keyframes, Title / Lower-third / Caption style presets, the system font list, one-click captions from a transcript, and SRT export.") }} + {{ partial "feature.html" (dict "t" "Edit by transcript" "d" "The transcript is an editing surface: lines resolve to the clip carrying them, a click seeks, and × cuts that sentence out of the timeline and ripples the gap closed.") }} + {{ partial "feature.html" (dict "t" "Smart mixing" "d" "Per-track ducking dips music under dialogue via sidechain compression, and a single-pass loudnorm brings the final mix to −14 LUFS on export.") }} + {{ partial "feature.html" (dict "t" "GPU-accelerated export" "d" "NVENC / QSV / VideoToolbox / AMF are verified with a real test encode before they are offered, hardware decode falls back to software on its own, and range export renders just your in / out marks.") }}
@@ -127,25 +147,28 @@

A real NLE — not a scaffold.

- 59 tools, one live project + {{ $tools }} tools, one live project

Connect any MCP client
and start editing.

The desktop app hosts the server over streamable HTTP. Point a client at it and ask in plain language — “skim the interview, cut the dead air, drop in - captions.” It claims a task, works, and hands back a reviewable result.

+ captions.”
It claims a task, works, and hands back a diff you review.

get_frame skim_asset preview_timeline + analyze_asset cut_clip - split_at ripple_delete remove_silence + snap_to_beats set_video_effects add_keyframe + set_reframe captions_from_transcript - set_track_duck + set_delivery_format + staged_diff export - +43 more + +{{ sub $tools 15 }} more
@@ -170,22 +193,34 @@

Connect any MCP client
and start editing.

Get it -

Download a build, or run from source.

+

Download Kerf.

+

Installers for every platform, straight from the latest GitHub release — + no account needed. Once installed, Kerf keeps itself up to date over a + signature-verified update feed.

+
+ {{ partial "download-button.html" (dict "Site" .Site "id" "get") }} + +
+ + {{ partial "download-grid.html" . }} +
-
-

Download

-

Installers for macOS, Linux and Windows are published on every release.

-

macOS / Linux expect a system FFmpeg on PATH; the Windows build bundles it.

- Latest release ↗ -

Build from source

git clone {{ $gh }}
-cd kerf/frontend && bun install && cd ..
+cd kerf/frontend && bun install && cd ..
 cargo run -p kerf-app

Needs Rust ≥ 1.95, Bun ≥ 1.2, and (for media) the FFmpeg dev libraries. - Builds without them via --no-default-features.

+ Builds without them via --no-default-features — the engine drives the + ffmpeg / ffprobe binaries either way.

+
+
+

Then point an agent at it

+
claude mcp add --transport http \
+  kerf {{ $mcp }}
+

The app hosts the MCP server itself — there is no second process to + start. Queue a task in the agent panel, and review the diff it hands back.

@@ -200,6 +235,7 @@

Build from source

non-destructive video editing, driven by AI
diff --git a/site/layouts/partials/os-icon.html b/site/layouts/partials/os-icon.html new file mode 100644 index 0000000..e888b26 --- /dev/null +++ b/site/layouts/partials/os-icon.html @@ -0,0 +1,11 @@ +{{- /* Platform glyphs for the download surfaces. `.os` is windows | macos | linux. */ -}} +{{- $h := default 16 .h -}} +