Large-File Version Control,
Built for Game Developers.
KK keeps your source code in Git and your large binary assets - textures, models, audio, video - safely stored, SHA-256 verified, and always in sync with your team.
# Initialize KK in your project
$ kk init
# Track large binary files
$ kk track "*.psd" "*.fbx" "*.wav" "*.mp4"
# Stage and commit your assets
$ kk add .
$ kk commit -m "feat(assets): add character rig v2"
# Push to Google Drive or your NAS
$ kk push
Git Was Not Built for Large Files.
Textures, 3D models, audio banks, and video files break standard Git repositories. Commits slow to a crawl. Clones balloon in size. History becomes unmanageable.
Git LFS helps - but it requires a separate server, introduces locking complexity, and still doesn't give you the flexibility to push to your own storage.
KK solves this without extra servers, without a SaaS bill, and without sacrificing your Git workflow.
Everything Git Handles, Plus Everything It Doesn't.
Git-Native Workflow
KK wraps Git. Your branches, merges, commits, tags, and history stay exactly where they belong - in a standard Git repository. KK adds large-file management on top, not in the way.
SHA-256 Asset Verification
Every large file is stored as a content-addressed object identified by its SHA-256 hash and byte size. Uploads and downloads are verified automatically. Corruption is detected before it silently reaches your team.
Bring Your Own Storage
Push to Google Drive, a NAS, a local folder, MEGA, or any rclone-supported destination. No vendor lock-in. No monthly SaaS fee. No server to maintain. Your assets live where you decide.
Multi-Remote Support
Configure multiple remotes - a fast local NAS for the studio and Google Drive as an offsite backup. KK can push to all of them and pull from the best available source automatically.
Pointer-Based History
Git commits a tiny pointer file for each large asset - not the raw bytes. Your repository stays lean. Large objects are pulled on demand, only when needed.
Deduplication
Objects are stored once per unique SHA-256 hash. The same texture used across ten commits is stored exactly once on your remote. Storage costs stay low.
Integrity Checking
Run kk fsck to verify that every object referenced by your Git history is present and intact - locally and on your remote. Catch missing or corrupted assets before a deadline.
Zero Telemetry
KK never phones home. No analytics, no crash reports, no usage tracking. The Licensor has zero visibility into your projects, your files, or your workflows.
Simple by Design.
Run kk init in your project root. KK creates a local .kk/ directory containing a bare Git repository and an object cache.
Tell KK which file patterns are large assets: kk track "*.psd" "*.fbx" "*.wav". KK writes glob patterns to .kk/tracks.json and updates .gitattributes automatically.
kk add . stages your changes. kk commit creates a Git commit with pointer files for tracked assets and full file content for everything else.
kk setup gdrive walks you through Google Drive authorization in your browser using OAuth 2.0 with PKCE. Or configure a local path or rclone remote manually.
kk push uploads new objects to your remote(s) and syncs the manifest. kk pull downloads missing objects to your local cache on demand.
kk fsck verifies every object referenced by your history is present and intact - locally and on the remote.
Works With the Storage You Already Have.
| Backend | Status | Notes |
|---|---|---|
| Google Drive | Native | OAuth 2.0 + PKCE, drive.file scope only |
| Local / NAS | Native | Direct filesystem path - no internet required |
| rclone (any) | Via rclone | MEGA, S3, Backblaze B2, Dropbox, OneDrive, SFTP, and 70+ more |
| SSH | Planned | Coming in a future release |
Free for Personal and Indie Use. Commercial Use Requires a License.
Free - Non-Production Use
- Personal projects
- Learning and education
- Academic research
- Development and testing
- Noncommercial indie development
- Full source code available
- Not for commercial production use
Commercial License - Studios & Teams
- All Free tier features
- Commercial Production Use permitted
- Production pipelines and studio workflows
- Client work and revenue-generating projects
- Custom terms available
- Priority contact
Future: Apache 2.0
Each version of KK automatically becomes available under the Apache License 2.0 - four years after its first public release. No action required.
Your Data Is Yours. Always.
KK runs entirely on your machine.
No data is sent to KK servers - because there are no KK servers. Your files, your credentials, your repository history, and your project metadata never leave your local machine or your chosen storage backend.
Google Drive OAuth tokens are stored locally with 0600 file permissions. KK requests only the drive.file scope - it can only see files it creates.
Frequently Asked Questions
No. KK wraps Git. Your Git history, branches, tags, and commits are all standard Git and can be used with any Git host (GitHub, GitLab, Bitbucket, Gitea, etc.).
No. KK is a local CLI tool. There are no KK servers, no KK accounts, and no subscription required for non-commercial use.
Git LFS requires a dedicated LFS server (or a SaaS LFS host). KK stores objects in any location you configure - a local folder, Google Drive, NAS, MEGA, or any rclone backend. KK also embeds its own Git repository so it doesn't depend on your host's LFS support.
KK is source-available under the Business Source License 1.1 (BSL 1.1). Non-production use is free. Each version converts to Apache 2.0 four years after its release. Commercial Production Use requires a separate license.
None. KK has zero telemetry. It collects no analytics, crash reports, usage statistics, or diagnostics of any kind.
OAuth tokens are stored only on your local machine (%APPDATA%\KK\gdrive\ on Windows, ~/.config/KK/gdrive/ on macOS/Linux) with restrictive file permissions. They are never transmitted to the KK developer or any third party.
Yes. Set KK_GOOGLE_CLIENT_ID and KK_GOOGLE_CLIENT_SECRET environment variables before running kk setup gdrive.