kneecap

A free, open-source CapCut for iPhone — full mobile video editor, no account, no watermark, no subscription

not yet reviewed by publik

Listed on @Blueturboguy07's behalf — not claimed yet.

kneecap

A local-first, fully offline mobile video editor, built for CapCut-mobile feature and visual parity.

kneecap is an independent, community fork. It is not affiliated with, endorsed by, or sponsored by OpenCut, OpenCut-app, CapCut, ByteDance, or TikTok Pte. Ltd. "CapCut" is referenced in this repo's planning docs only as a functional/visual parity target for the editor we're building — no CapCut trademarks, marks, or copyrighted assets are bundled, redistributed, or reproduced here. See docs/DECISIONS.md for the full attribution and naming posture.

Based on OpenCut-app/opencut-classic (MIT)

kneecap is forked from OpenCut-app/opencut-classic — the archived-but-complete Next.js/Rust engine behind the original OpenCut web editor — licensed under the MIT License. The original copyright notice and license are preserved verbatim in LICENSE; see NOTICE for the attribution statement and docs/THIRD_PARTY_NOTICES.md for a full inventory of bundled third-party assets and dependency licenses.

opencut-classic was archived by its maintainers on 2026-05-16. This fork receives no upstream commits and owns its entire dependency and security surface going forward — see docs/DECISIONS.md for what that means in practice. It is unrelated to and not a redistribution of the separate, actively-developed OpenCut-app/OpenCut rewrite.

What this is

kneecap strips the inherited engine down to its headless editing core — timeline, ripple/placement, effects, storage — and is being rebuilt as a touch-first, CapCut-mobile-shaped editor for iOS and Android, running fully on-device:

  • Zero cloud dependency. No account, no server, no paid API of any kind. The app is designed to work correctly with the network off.
  • On-device auto-captions, multi-track timeline editing, trim/split, transitions, text/stickers, filters, speed ramping, and hardware-accelerated export — all local.
  • No app-store release. kneecap is distributed directly (signed builds via GitHub Releases + install guides), not through the Apple App Store or Google Play. See docs/DECISIONS.md §8.5.

The full architecture and milestone plan lives outside this repo in the project's planning documents; docs/DECISIONS.md is the in-repo record of what's been ratified and why.

Current status

This repo is mid-fork: the inherited codebase is a Next.js 16 web app (apps/web/) with the original desktop shell (apps/desktop/, GPUI) and Rust/WASM compositor (rust/) still present.

M2 landed the headless engine extraction. The editing engine now lives in packages/editor-coreEditorCore and its 12 managers, timeline/placement/ripple/retime, the command system, storage and its 31 migrations, the renderer graph, and the frozen EDL v1 bridge contract (docs/EDL.md). It contains no React, Next, or UI-library imports, enforced two ways: the package type-checks standalone with @/* mapped to its own src only, and scripts/check-headless.mjs scans every file. apps/web consumes it and keeps working.

The mobile shell (apps/mobile/) does not exist yet — see the plan's milestone list for sequencing. Treat what remains under apps/web/src as inherited UI code being progressively adapted, not as the shipped mobile product.

Project structure

  • packages/editor-core/the headless editing engine. Framework- agnostic TypeScript: no React, no DOM-desktop assumptions, no server. Its react/ subdirectory holds the one React-aware file, the useSyncExternalStore bridge. schema/edl-v1.json is the frozen native-export contract; see docs/EDL.md.
  • apps/web/ — inherited Next.js web application. Now the UI host for packages/editor-core, and the dev harness for engine work.
  • apps/desktop/ — inherited native desktop shell (GPUI), not a build target for this project.
  • rust/ — the Rust/wgpu compositor compiled to WASM (rust/wasm) and its supporting crates (rust/crates/{gpu,compositor,effects,masks,time}).
  • docs/ — architecture notes, EDL.md (the frozen EDL v1 bridge contract — read this before writing a native exporter), DECISIONS.md (ratified founder decisions), THIRD_PARTY_NOTICES.md, RELEASING.md (how signed direct-distribution releases are cut — plan M13's no-app-store section), and guides/ + publik-listing.md (draft install guides and listing copy; repo docs only, not yet published anywhere).
  • scripts/offline-audit.{sh,mjs} (the CI gate that keeps the app network-free), invariants.sh (the merge gate), check-headless.mjs (the packages/editor-core import gate), and generate-third-party-notices.mjs.

License

MIT — see NOTICE for the required upstream attribution and docs/THIRD_PARTY_NOTICES.md for third-party asset and dependency licenses.