Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OMP Desktop logo

OMP Desktop

A fast, native Windows desktop app for the omp coding agent.

WinUI 3 · .NET 9 · Agent Client Protocol (ACP) over stdio · no Electron, no WebView2

Release License: MIT Platform .NET CI

OMP Desktop main window: workspace sidebar, agent transcript with tool calls, markdown and code blocks, and the composer with model and thinking pickers

What is OMP Desktop?

OMP Desktop is a graphical client for the omp coding agent. Instead of living in a terminal, you get a real desktop app: a workspace sidebar, full conversation history, streaming replies, rendered tool calls and diffs, model management, skills management, and native dialogs for everything dangerous.

It speaks the Agent Client Protocol (ACP), the same open protocol used by Zed and other editors, directly to omp acp over stdio. Your threads, credentials, models and skills stay exactly where omp keeps them: the app and the terminal stay in sync because they share one agent.

Highlights

  • Truly native: WinUI 3 / .NET 9, no browser engine bundled, one small exe plus runtime files
  • Portable: download one zip, extract, double click. No installer, no registry, no admin
  • Brings your own agent: uses your existing omp login, models and API keys
  • Open source, MIT licensed

Features

Chat and transcripts

  • Streaming agent turns with live reasoning. Collapsed thoughts show a ticker of the current line so you can watch the model think without expanding anything
  • Every tool call renders as one compact row: the agent's intent, the actual command or path, and trailing facts like duration, exit code and match count. Click to expand full output, code blocks and diffs
  • Full history replay. Opening a thread restores user messages, reasoning, tool calls, plans, file diffs and token usage
  • Markdown rendering with syntax highlighted code blocks, language icons, copy buttons, and scroll chaining: wheel over a tall code block keeps scrolling your transcript when the block runs out
  • Auto follow stays pinned to the newest output while you are at the bottom and lets go the moment you scroll up
  • Thread titles are derived from your first message. Rename any time from the thread menu
  • Search across threads, per-thread busy state, stop button, reconnect handling

Workspaces

  • Every folder omp has sessions in appears as a workspace in the sidebar, with its threads nested underneath, newest first
  • Add any folder as a workspace, remove workspaces you do not want (they stay removed), collapse groups you rarely use
  • Right click a thread to open, rename, export to HTML, copy, compact or delete it

Models page

  • Assign omp's model roles (default, smol, slow, plan, commit, tiny, task, vision, advisor) from the full catalogue omp offers, grouped by provider
  • Choose exactly which models appear in the composer's model picker
  • Add any OpenAI-compatible endpoint as a custom provider: base URL, API key, model id, context window, reasoning support. Written to omp's own models.yml
  • Set and remove provider API keys from the app

Tools and safety

  • Native approval dialog for bash, edit, delete and move, with allow once, always allow or reject, or a global auto-approve switch
  • Per-tool switches in Settings: turn off write, read, bash, web search or any other of omp's built-in tools. The tool is removed from the agent entirely and takes effect on the next reconnect
  • The client advertises no filesystem or terminal capabilities on purpose, so omp does all file and shell work itself and asks before anything destructive

Skills page

  • Lists every skill omp will load across all of its skill folders
  • Create, import and delete skills in the omp user directory, and see which ones come from project or other sources read-only

Options page

  • omp's own configuration, rendered as a searchable page with typed editors for booleans, numbers, enums, lists and records

Screenshots

Chat Models
Transcript with tool calls and code blocks Models page with roles
Settings
Settings page with tool approvals and per-tool switches

Quick start

  1. Install the omp CLI and sign in (run omp once in a terminal).
  2. Grab OmpDesktop.*-win-x64.zip from the latest release.
  3. Extract anywhere and run OmpDesktop.exe. That is the whole install.

Requirements: Windows 10 2004+ or Windows 11, x64, and an installed omp CLI. The app is self-contained: no separate .NET runtime or Windows App SDK install needed.

Builds are unsigned. If Windows Smart App Control blocks the app, see Troubleshooting before changing security settings.

Build from source

git clone https://github.com/Bibarud/omp-desktop.git
cd omp-desktop
dotnet publish src\OmpDesktop\OmpDesktop.csproj -c Release -r win-x64 -o publish\win-x64
publish\win-x64\OmpDesktop.exe

Requirements: the .NET 9 SDK (NuGet restores Windows App SDK 1.8 automatically) and Windows 10/11. publish.bat runs the same publish step. Pushing a tag like v0.2.0 builds a release zip in CI via GitHub Actions.

How it works

One omp acp child process serves the whole app. The client:

  1. initialize + authenticate, reusing your existing ~/.omp credentials
  2. session/list, paginated, grouped by working directory into the sidebar
  3. session/load for full history replay into the transcript
  4. session/prompt for new turns, session/cancel to stop
  5. session/request_permission, answered by a native dialog, fail closed
  6. session/new / session/fork / session/close for thread lifecycle
  7. session/set_config_option to drive the inline model, thinking and mode pickers

Parser notes worth knowing if you touch the transcript code: omp sends tool arguments in rawInput (with a human description in rawInput.i) and results in rawOutput.content plus rawOutput.details, does not use the ACP title field for the useful part, and wallTimeMs arrives as a float. tools/probe_acp.py dumps real traffic so the parser can be checked against reality.

Project layout

src/OmpDesktop/
  Acp/            JSON-RPC transport, typed ACP client, models, omp locator
  Models/         transcript items and sidebar row state
  ViewModels/     MainViewModel (workspaces, routing, permissions), ThreadViewModel
  Controls/       MarkdownView, DiffView, pickers, theme brushes, converters
  Dialogs/        PermissionDialog
  Views/          Settings, Models, Skills, Options pages
  Rendering/      Markdown parser, line diff
  Services/       settings, omp config/CLI, models.yml editing, tool catalogue
tools/            ACP probe, parser checks, logo generator, UIA test harnesses

Settings live in %APPDATA%\OmpDesktop\settings.json. Everything omp related (threads, models, keys, skills) stays in omp's own home under ~/.omp.

FAQ

Is OMP Desktop free? Yes. MIT licensed, source code in this repo, releases are free downloads.

Does it need a subscription or its own API keys? No. It uses the omp CLI you are already signed in with. Models, providers and API keys you configure on the Models page are stored by omp itself, so the terminal and the app share them.

Does it work with other ACP agents like Claude Code or Gemini CLI? It is built and tested against omp. The transport is standard ACP, so much of it would work, but omp specific features (models page, skills, options) expect omp.

Is my code sent anywhere by the app? The app talks only to the omp process on your machine, which talks to the model providers you configured, exactly like running omp in a terminal. OMP Desktop adds no telemetry and no cloud service of its own.

Why is the app ~200 MB extracted? It is a self-contained .NET 9 + Windows App SDK build, so most of that is the runtime shipped with it. Nothing else is installed on your system.

Troubleshooting

Windows blocked the app: 0x800711C7 or FileLoadException Unsigned builds are refused by Smart App Control once it leaves evaluation mode. Turning Smart App Control off is a one-way change, so decide deliberately. The alternative is signing the build with a certificate your machine trusts.

The taskbar icon looks generic OmpDesktop.exe embeds the icon, but the window and taskbar icon is loaded at runtime from app.ico next to the exe. If you copy the exe alone, copy app.ico with it.

omp not found Set the path on the Settings page or press Auto-detect. The app looks next to the exe and in the standard omp install locations.

Contributing

Issues and pull requests are welcome. For bigger changes, open an issue first so we can discuss the approach. See CONTRIBUTING.md for build and test notes.

License

MIT. The omp CLI is a separate project by Stencil with its own license. The Agent Client Protocol is an open specification. Phosphor icons are MIT licensed by Phosphor Icons.

If this repo helped you, a star helps others find it.

About

Native Windows desktop app (WinUI 3) for the omp coding agent over ACP: streaming chat, tool approvals, models and providers, skills, per-tool switches. Portable, MIT.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages