Skip to content

holo-q/vibekit

Repository files navigation

vibekit

Immediate-mode GUI application framework for C#, built on ImGui.NET + Silk.NET.

Vibekit provides a batteries-included platform layer for building desktop tools with ImGui: window management, menus, keybinds, preferences, layout presets, undo, theming, structured tracing, and a crash-supervising dev host — plus widget packs for canvas, node editing, and timeline/lanes.

Project structure

11 library projects + 1 sample, all wired through Vibekit.slnx:

Vibekit.Tracing              structured tracing primitive (no ImGui dependency)
Vibekit.DevHost              crash supervisor, hot-reload bridge, log capture
Vibekit.DevHost.Cli          `vibekit-devhost` CLI entry point

Vibekit.Core                 ImGui + Silk.NET runtime, chrome, keybind manager
Vibekit.Platform             AppKit, windows, workspace, theme, layout, prefs,
                             menus, keybinds, undo, animations, storage

Vibekit.Platform.Keybinds.Sourcegen   [Shortcut("ctrl+s")] source generator
Vibekit.Platform.Menus.Sourcegen      [Menu("View/Foo")]    source generator
Vibekit.Platform.Actions.Sourcegen    [Command(path, Icon)] source generator

Vibekit.Widgets.Canvas       world-space pan/zoom, gizmos, overlays
Vibekit.Widgets.Lanes        timeline + swimlanes (point/span items)
Vibekit.Widgets.Nodes        node graph editor (self-rolled, no upstream binding)

samples/Vibekit.Samples.Hello   minimal AppKit.Launch reference app

Key features

  • AppKit — subclass, override OnSetup(), call Launch(). Handles the Silk.NET window, OpenGL context, ImGui integration, and frame loop.
  • BaseWindow family — composable window bases with virtual spec properties (DockSpec, MenuSpec, LayoutSpec, BehaviorSpec). Layout-scoped state and durable preferences built in.
  • Source generators[Shortcut], [Menu], [Command] attributes emit registration code at compile time. No runtime reflection on hot paths.
  • Structured tracingTraceLogger with seven semantic emitters, hierarchical filtering via TracePolicy, ANSI-coloured stdout, archival to disk.
  • Dev supervisor — separate-process crash wrapper with hot-reload, terminal key controls (R/P/Q), and traceback capture.

Render stack

ImGui.NET 1.91.6.1 + Silk.NET.OpenGL.Extensions.ImGui 2.23.0 on Silk.NET.Windowing + Silk.NET.OpenGL. Target: net10.0, AOT-friendly.

Building

Prerequisites: .NET 10 SDK.

This project uses sibling path dependencies. Clone it alongside its sibling projects in the same parent directory:

parent/
  vibekit/       <-- this repo
  oomfi/         <-- example consumer app (optional)
dotnet build Vibekit.slnx
dotnet run --project samples/Vibekit.Samples.Hello

License

MIT

Releases

No releases published

Packages

 
 
 

Contributors

Languages