OVC
Documentation
Download GitHub
No sections match your search.
OVC Documentation

Version control that stays under your control

Learn how to install OVC, create encrypted repositories, use the desktop app, work from the command line, and understand the local-first architecture.

Installation

Choose your platform

The desktop app is the fastest path for local use. It includes the OVC service and interface in one application.

macOS

Signed and notarized builds for Apple Silicon and Intel.

Download DMG

Windows

A standard 64-bit MSI installer for Windows.

Download MSI

Linux

Install a DEB package or run the portable AppImage.

View Linux builds

Install the CLI

Use the CLI for terminal workflows, automation, and browser hosting.

Linux and macOS
$ curl -fsSL https://raw.githubusercontent.com/Olib-AI/ovc/main/scripts/install.sh | bash
Windows PowerShell
PS> irm https://raw.githubusercontent.com/Olib-AI/ovc/main/scripts/install.ps1 | iex
First Launch

Create your first encrypted repository

Open OVC from your Applications folder, Start menu, or Linux application launcher. The app starts its private local service automatically.

  1. Enter the name used for new commits.
  2. Enter the email used for new commits.
  3. Choose a name for your first repository.
  4. Create and confirm its encryption password.

Your author identity is stored inside the encrypted repository configuration. Repository passwords are not placed in browser storage.

Desktop App

No CLI or daemon required

The desktop executable links the OVC API directly and embeds the compiled React interface. It binds to an available loopback port and creates a private session before the system webview loads.

  • macOS: WKWebView
  • Windows: WebView2
  • Linux: WebKitGTK

Desktop and CLI installations can coexist. Both use the same encrypted repository format.

Command Line

A familiar daily workflow

Terminal
# Create and work with a repository
$ ovc init --name my-project.ovc --key mykey
$ ovc add .
$ ovc commit -m "initial commit"
$ ovc status
$ ovc log --oneline --graph

Set OVC_KEY, OVC_AUTHOR_NAME, and OVC_AUTHOR_EMAIL in your shell for repeatable CLI workflows. The interactive ovc onboard command can configure these values.

Browser UI

Host the same interface in a browser

The CLI can serve the embedded interface for browser use, development, or remote deployments.

Terminal
$ ovc serve --port 9742 --repos-dir /path/to/repos
$ ovc web

The desktop app does not use this fixed port or require this command. It manages its own private service instance.

Storage and Security

One encrypted file per repository

Every repository is stored as a portable .ovc file. Commit data, branches, tags, file names, content, and repository configuration are encrypted at rest.

  • Default desktop location: the platform data directory under ovc/repos
  • Custom location: set OVC_REPOS_DIR before launching OVC
  • Encryption: XChaCha20-Poly1305 with Ed25519 and X25519 keys
  • Local service: bound to 127.0.0.1 on an available port
Architecture

Native shell, embedded service, shared UI

Window

Slint

Owns the native application window and startup state.

Interface

Wry and React

Attaches the system webview and loads embedded assets.

Service

Axum API

Runs in process and operates on encrypted repositories.

The shared React interface avoids maintaining separate desktop and browser implementations. The system webview keeps the package smaller than bundling a complete browser engine.

Development

Build from source

Terminal
$ git clone https://github.com/Olib-AI/ovc.git
$ cd ovc/frontend && npm install && npm run build
$ cd .. && cargo run -p ovc-desktop

Create a native package

Terminal
$ cargo install cargo-bundle --version 0.11.0
$ cargo bundle --release -p ovc-desktop
References

Detailed guides

Continue with the focused guides in the repository.

OVC documentation · Open source under the MIT License