apic

apic 0.5.1

A lightweight, Git-friendly CLI tool for designing and collaborating on API contracts.

Download for Windows

About apic

apic is a lightweight, Git-friendly CLI and TUI for designing, validating, and collaborating on API contracts as plain text you can diff and review.

What's new in 0.5.1

A packaging release on top of 0.5.0, plus one change to how the git panel presents a diff. The CLI, the TUI, and the contract format are unchanged, so existing projects need no migration.

Installable from apt on Ubuntu

packaging/debian/ builds apic and apic-gui as .deb packages for Ubuntu 26.04 on amd64 and arm64, published through the PPA ppa:rizukirr/apic.

Unlike the AUR and Copr packages, which ship prebuilt binaries, Launchpad compiles from source on builders with no network access. mk-orig.sh vendors all 566 crate dependencies into the orig tarball and verifies the vendor tree is internally consistent before writing it. apic-gui now declares the git runtime dependency it has always needed.

Getting there meant moving eframe and egui_extras back to 0.35 and dropping the declared MSRV from 1.97 to 1.92. epaint 0.36.1 requires Rust 1.95, while Ubuntu 26.04 ships 1.93 as its newest archive toolchain, which put the desktop GUI out of reach of the current LTS. The downgrade needed no source change and the full suite passes on 1.92.

A new msrv job in CI builds and tests the workspace on the minimum supported version, so a routine dependency bump cannot silently push the project past what the Ubuntu archive can compile.

Git panel:field list first, real diff behind the toggle

Selecting a changed contract now opens on its field list, which says what changed about the contract, rather than on the whole file with the changed lines tinted.

The checkbox that read Show changed fields now reads Show raw diff and gives git's own output, with hunk headers and +/- markers, instead of the entire file. It stays where you put it when you click a different file rather than resetting each time.

Anything the field list cannot describe falls through to the diff:a non-contract file, an untracked file, or a change that is only formatting. A selection never lands on an empty pane.

One fix underneath this. The diff renderer kept only the first hunk header and printed every later one a character short, which nothing noticed while the panel asked git for the whole file as a single hunk. It now keeps the markers git emits and colors each @@ header.

Install

Prebuilt binaries for Linux, macOS, and Windows are attached below, each with a .sha256. The desktop GUI also ships as a macOS .app bundle and a Windows MSI.
…

Full release notes »

Technical details

PublisherRizki Rakasiwi
Version0.5.1
LicenseMIT
Installer typezip
Architecturex64
Package IDrizukirr.apic

Install apic from the command line

Install with Windows Package Manager
winget install --id=rizukirr.apic -e
Update to the latest version
winget upgrade --id=rizukirr.apic -e
Uninstall
winget uninstall --id=rizukirr.apic -e

apicontractclirestjson

apic version history

0.5.0

The desktop GUI gains a git panel. The CLI, the TUI and the contract format are unchanged, so existing projects need no migration and nothing has to be updated to keep working.

Git panel in the desktop GUI

A second sidebar tab, next to Explorer, that appears when the project sits inside a git repository. It shells out to your own git, so hooks, credential helpers and config behave exactly as they do in a terminal.

Status and staging. Changed files listed under CONFLICTS, STAGED and UNSTAGED, nested by folder like the Explorer tree, scoped to your contract working directory plus .apic/. Changes elsewhere in the repository are counted on a line you can expand rather than hidden. Stage, unstage and discard with +, - and x on any file or folder, then commit. Discard is offered for tracked files only and always names what it will revert.

Diffs. Selecting a file shows it whole with changed lines coloured. A toggle switches to a field-level summary that names each changed field and its old and new value, which is the better view for a schema change buried in a large contract.

Branches. A dropdown lists every local branch. Picking one checks it out, + creates one, x deletes one behind a confirmation. Deleting is never forced, so git's refusal to drop unmerged work is surfaced rather than overridden. …

0.4.1

apic 0.4.1

A maintenance release on top of 0.4.0. There are no contract format changes and no new commands, so existing 0.4.0 projects keep working untouched and no migration step is needed.

The substance of this release is the eframe/egui 0.35 upgrade behind the desktop GUI, a dependency refresh across the whole workspace, and a higher minimum supported Rust version. If you only use the CLI/TUI (apic), this is a drop-in update with refreshed dependencies underneath.

Desktop GUI moves to eframe/egui 0.35

apic-gui now builds on eframe/egui 0.35, up from 0.33.3, including the Windows-only wgpu (DirectX) renderer feature that lets the GUI launch in driverless environments such as VMs, RDP sessions, and winget's validation sandbox. Getting there meant following three breaking changes in egui:

  • App::update became App::ui. eframe::App no longer exposes update(&mut self, ctx, frame). The GUI implements ui(&mut self, ui, frame) instead, so the root of the application is now a Ui with no margin and no background rather than a Context. Panels attach to that root Ui, while the native file dialogs and the modal dialogs keep operating on the Context, reached through ui.ctx().
  • Panels are unified. TopBottomPanel and SidePanel are replaced by a single egui::Panel type, so the nav bar, the status bar, and the contract sidebar are built with Panel::top, Panel::bottom, and Panel::left. …
0.3.6

Frequently asked questions

Is apic free?

Yes. apic is free and open-source software released under the MIT license.

What is the latest version of apic?

The latest version is 0.5.1.

Is it safe to download apic?

The download button links to the official installer published on github.com, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with f167388b57354640845343195375c68118753ecaca2f6ff398eeb83d2210eaad.

Which Windows versions does apic support?

apic runs on Windows and is available for 64-bit (x64) systems.

How do I uninstall apic?

Open Settings › Apps › Installed apps, find apic and select Uninstall. From the command line, run winget uninstall --id=rizukirr.apic -e.

Is there a portable version of apic?

Yes. apic is available as a portable ZIP archive (apic-v0.5.1-x86_64-pc-windows-msvc.zip, 64-bit (x64)) that runs without installation. Copy it to any folder or USB drive and run it from there.