How to install kneecap on iPhone using a Mac

kneecap does what CapCut does, and CapCut costs $20/mo. This guide gets you the free one.

What you end up with

kneecap running on your iPhone. It is free, and it stays free — there is no account, no trial and no subscription at the end of this.

Time
About 40 minutes
Steps
17
Cost
Free

Before you start

These are one-time installs. If you have used Terminal before, you may have them already — the first step checks.

  1. Install Git

    Apple opens a small installer.

    Type this into Terminal, then press Return.

    xcode-select --install

    You know this worked when: Git responds with a version number

  2. Install Node LTS

    Choose the macOS Installer (.pkg).

    Open download

    You know this worked when: Node responds with a version number

Install kneecap

  1. Open Terminal

    Keep it open beside this page.

    You know this worked when: Terminal is open

  2. Check Git and Node

    Git and the current Node LTS are required.

    Type this into Terminal, then press Return.

    git --version
    node --version

    You know this worked when: Git and Node respond with version numbers

  3. Install Bun

    kneecap's workspace is built with Bun. This installs it through npm.

    Type this into Terminal, then press Return.

    npm install -g bun

    You know this worked when: Bun responds with a version number

  4. Copy kneecap to this Mac

    Type this into Terminal, then press Return.

    cd ~
    if [ ! -d kneecap/.git ]; then
    git clone https://github.com/Blueturboguy07/kneecap.git
    fi

    You know this worked when: A kneecap folder appears

  5. Open the kneecap folder

    Type this into Terminal, then press Return.

    cd kneecap

    You know this worked when: Your terminal prompt is inside the kneecap folder

  6. Use the reviewed version

    Type this into Terminal, then press Return.

    git checkout fc48ba487a1e0d0cd10b30d6600acd2895ffdbed

    You know this worked when: Git reports the reviewed commit

  7. Install the workspace

    A few minutes the first time — it is a Rust and TypeScript monorepo.

    Type this into Terminal, then press Return.

    bun install

    You know this worked when: The command finishes without an error

  8. Build the editor

    Bundles the editor into apps/mobile/www — the assets the phone app loads offline.

    Type this into Terminal, then press Return.

    cd apps/mobile
    bun run build

    You know this worked when: Vite reports the build finished

  9. Install Xcode

    Free, and large — start it now. Open it once and accept the licence.

    Open App Store

    You know this worked when: Xcode opens to its welcome screen

  10. Copy the editor into the iPhone app

    Type this into Terminal, then press Return.

    bunx cap sync ios

    You know this worked when: Capacitor reports the sync finished

  11. Open the iPhone project

    Capacitor 8 uses Swift Package Manager, so there is no workspace file to hunt for.

    Type this into Terminal, then press Return.

    bunx cap open ios

    You know this worked when: Xcode opens the App project and finishes resolving packages

  12. Sign it with your Apple ID

    Pick App, then Signing & Capabilities, then add your Apple ID as the Team.

    You know this worked when: The signing panel shows your name and no red error

  13. Plug in your iPhone and press play

    Pick your iPhone in the device menu, then the play button. First build is slow.

    You know this worked when: kneecap appears on your home screen

  14. Trust the app on your iPhone

    Settings, General, VPN & Device Management, your Apple ID, then Trust.

    You know this worked when: kneecap opens instead of showing an Untrusted Developer message

  15. Check that it works

    Open kneecap, start a project, add a clip from your camera roll, then Export.

    You know this worked when: The exported video saves back to your camera roll

If something goes wrong

Nothing here can damage your computer, and every step can be run again safely. If a command fails, the usual cause is the step before it not having finished.

Still stuck? Tell us what happened and we will fix the guide. Include the step number and we can usually reproduce it.

Have a different setup?