Repositories

  • archup MIT

    Opinionated Arch Linux installer that picks the boring defaults so you don't have to

    • arch-linux
    • archinstall
    • btrfs
    • bubble-tea
    • go
    • installer
    • limine
    • luks
    • plymouth
    • snapper
    • tui
    commits
    309
    last 30 days
    0
    last activity
    • 6af0a61 Merge pull request #8 from bnema/dependabot/go_modules/github.com/charmbracelet/bubbles-1.0.0
    • 1fde3cf docs(readme): mark all status items complete
    • fdbb060 docs(readme): remove em dashes
    • 3bab1d4 docs(readme): rewrite for clarity and concision
    • 1d14b12 ci(deps): add dependabot config and auto-merge workflow
  • go-wayland-bindings MIT

    Go bindings for Wayland protocols, generated from upstream XML

    commits
    15
    last 30 days
    15
    last activity
    last tag
    v0.1.0
    • 5004296 Merge pull request 'ci(tools): bump Staticcheck to 2026.2.2' (#2) from ci/go-tooling into main
    • b005c92 ci(tools): bump Staticcheck to 2026.2.2
    • 1a6c6c9 docs: describe when the daily sync publishes a release
    • 5ad4636 fix(ci): isolate write token, recover missed releases and reject wayland release candidates
    • 8dd5ed7 fix(gen): keep upstream license in server bindings and harden generator tests
  • kvconf MIT

    Stdlib-only key = value config for Go: parser, typed decoder, native live reload (Linux, macOS, Windows)

    commits
    15
    last 30 days
    15
    last activity
    last tag
    v0.1.2
    • b4521f0 Merge pull request 'docs(readme): pin benchmark table to v0.1.2' (#5) from docs/bench-v0.1.2 into main
    • abb6a3f docs(readme): pin benchmark table to v0.1.2
    • 1e7884d Merge pull request 'perf: cut Parse, Unmarshal and Marshal allocations' (#4) from perf/decode-marshal into main
    • 5ec126a Merge pull request 'docs(readme): pin benchmark table to v0.1.1' (#3) from docs/bench-v0.1.1 into main
    • a70d85c fix(decode): bound map element storage and keep errors deterministic
  • neferclient MIT

    Wayland client toolkit library for Go: connection, outputs, surface roles, seat and DMA-BUF presentation

    commits
    62
    last 30 days
    62
    last activity
    last tag
    v0.4.0
    • 7c2aaeb Merge pull request 'ci(tools): install pinned Mockery v3.8.1 and Staticcheck 2026.2.2' (#5) from ci/go-tooling into main
    • 3ca6598 ci(tools): install pinned Mockery v3.8.1 and Staticcheck 2026.2.2
    • 5f1ad00 Merge pull request #3: feat(surface): xdg popups with grab and reposition
    • f9fb2ee ci: build the Go tools against the latest x/tools
    • 6549d6f ci: build staticcheck against x/tools v0.51.0 for Go 1.27.2
  • pdraim MIT

    Non-profit sandbox recreating AOL/AIM-era chat rooms (SvelteKit, Convex, XP.css)

    • chat
    • convex
    • retro
    • svelte
    • sveltekit
    • typescript
    commits
    260
    last 30 days
    40
    last activity
    last tag
    v0.4.0
    • f6d8405 Merge pull request 'feat(deploy): run pdraim as a Node container on Gordon' (#2) from feat/gordon-container into main
    • fb18f06 ci: rerun checks after npm registry timeout
    • c76e7e6 fix(deploy): harden the Node container after review
    • 5d60e39 docs(readme): document X-Real-IP as the client address header
    • af344e1 feat(deploy): run as a Node container image instead of Cloudflare Pages
  • purego-pam MIT

    Pure Go (purego) Linux-PAM binding, CGO_ENABLED=0

    commits
    3
    last 30 days
    3
    last activity
    last tag
    v0.1.0
    • c541a90 Merge pull request #1 from bnema/feat/pam-binding
    • 0b4c4c3 chore: initialize repository
    • 90ecd5a feat(pam): add purego Linux-PAM binding with managed conversation
  • purego-pipewire MIT

    Go PipeWire bindings via purego, without cgo.

    • audio
    • bindings
    • go
    • linux
    • pipewire
    • purego
    commits
    95
    last 30 days
    17
    last activity
    last tag
    v0.2.0
    • 4c97002 Merge pull request 'feat: add a zero-allocation PipeWire video source' (#1) from feat/video-source into main
    • adcd7e5 docs(readme): check loop and context errors in the video example
    • d7dc935 test(integration): record video source events through the generated handler mock
    • 85ac61e fix(core): refuse Resize while a buffer is borrowed and formats other than BGRx and BGRA
    • 5bd5e9f ci: run Dependabot auto-merge as a plain job
  • purego-xkbcommon MIT

    Pure Go libxkbcommon bindings loaded with purego

    commits
    17
    last 30 days
    17
    last activity
    last tag
    v0.2.0
    • 908d8c0 Merge pull request 'ci(tools): pin Staticcheck to 2026.2.2' (#2) from ci/go-tooling into main
    • 08e2c3e ci(tools): pin Staticcheck to 2026.2.2
    • 7790fe5 Merge pull request #3 from bnema/perf/syscall-hotpath
    • ac65b63 ci: install en_US.UTF-8 locale and Compose data for live tests
    • c927417 ci: run vet, staticcheck, tests, race and generation check
  • wlturbo MIT

    High-Performance Wayland client runtime for Go

    commits
    62
    last 30 days
    53
    last activity
    last tag
    v0.6.2
    • e82a709 Merge pull request 'ci(tools): pin Staticcheck to 2026.2.2' (#3) from ci/go-tooling into main
    • 10cd32b ci(tools): pin Staticcheck to 2026.2.2
    • dfba464 Merge pull request 'docs(readme): clarify WLTurbo scope and place in the stack' (#1) from docs/readme-scope into main
    • 8265b22 docs(readme): describe the stack generically instead of naming a specific toolkit
    • fbc2306 docs(readme): state that WLTurbo is the transport layer and show its place in the stack
  • zerobus MIT

    Zero-allocation D-Bus client for Go

    commits
    10
    last 30 days
    10
    last activity
    last tag
    v0.2.0
    • 07ab4d2 Merge pull request 'feat(conn): add directed signals, async calls and poll helpers' (#2) from feat/server-helpers into main
    • e3bde5d ci: run the checks in an Arch container
    • 0885f41 test(conn): build the server tests on every Unix
    • 69ad4ea fix(conn): reject directed signals without a destination
    • 12c08ea feat(conn): add directed signals, async calls and poll helpers
  • vev-vt GPL-3.0

    Frontend-neutral VT terminal engine for Go.

    • go
    • terminal
    • vt
    commits
    1 600
    last 30 days
    26
    last activity
    last tag
    v0.7.2
    CI: passing
    • ab6686c fix(kittygraphics): advance cursor by derived cells when c or r is zero
    • 0c10420 fix(kittygraphics): derive missing c/r from aspect ratio
    • ff50ee4 chore: merge github/main dependabot updates
    • 66991a3 Merge pull request 'fix(screen): support DEC special graphics, REP and DECSTR' (#3) from fix/dec-special-graphics into main
    • f053137 fix(screen): keep REP eligibility across empty writes after a lone ESC
  • ermite-kv MIT

    Embedded in-memory key-value store with append-only log for Go

    • append-only-log
    • embedded-database
    • golang
    • key-value-store
    commits
    25
    last 30 days
    25
    last activity
    last tag
    v0.1.1
    CI: passing
    • e7b3a25 build(go): require Go 1.27 so the toolchain picks the latest patch
    • 2dee1a2 ci(workflows): bump actions/setup-go from v5 to v7
    • d6a34b8 docs(readme): rewrite README with a short overview and docs/ (#4)
    • 34d577f ci: run CI from .github/workflows and drop the Forgejo workflow (#3)
    • 8b870d7 docs(readme): point links to the public mirror and drop private infrastructure details (#2)
  • ermite-git MIT

    Fast read-only Git repository reader for Go

    • git
    • git-reader
    • golang
    • packfile
    commits
    39
    last 30 days
    39
    last activity
    last tag
    v0.1.1
    CI: passing
    • de06cbd build(go): require Go 1.27 so the toolchain picks the latest patch
    • 21da6e0 ci(workflows): bump actions/setup-go from v5 to v7
    • 3905349 docs(readme): rewrite README with a short overview and docs/ (#6)
    • 3889d22 ci: trust the workspace in the archlinux container so git diff reads the repository (#5)
    • d5d7065 ci: run CI from .github/workflows and drop the Forgejo workflow (#4)
  • ermite-actions MIT

    GitHub Actions workflow language in Go: expressions, templates, workflow model, matrices and action.yml

    • ci
    • expression-parser
    • github-actions
    • golang
    • workflow
    • yaml
    commits
    79
    last 30 days
    79
    last activity
    last tag
    v0.2.1
    CI: passing
    • 98594d0 build(go): require Go 1.27 so the toolchain picks the latest patch
    • f6d03c4 ci(workflows): bump actions/setup-go from v5 to v7
    • 6949637 docs(readme): rewrite README with a short overview and docs/ (#11)
    • 3118ae6 ci: run CI from .github/workflows and drop the Forgejo workflow (#10)
    • 7c2011e docs(readme): point links to the public mirror and drop private infrastructure details (#9)
  • ermite-api MIT

    Public API contract of the ermite forge: protobuf + generated Go

    • api
    • connectrpc
    • git-forge
    • golang
    • protobuf
    commits
    59
    last 30 days
    59
    last activity
    last tag
    v0.16.1
    CI: passing
    • ffa9a5e build(go): require Go 1.27 so the toolchain picks the latest patch
    • 751d351 feat(proto): ReleaseService, release:write scope and release events
    • e4b332d fix(proto): keep failing_checks_block as a deprecated field instead of removing it
    • d1c609e feat(proto): add MarkReady, mr:force-merge and ignore_checks, drop failing_checks_block
    • c54bf5d ci(workflows): bump actions/setup-go from v5 to v7
  • ermite-runner MIT

    CI runner for the ermite forge: GitHub Actions compatible jobs in Firecracker sandboxes

    • ci-runner
    • firecracker
    • github-actions
    • golang
    • sandbox
    commits
    217
    last 30 days
    217
    last activity
    last tag
    v0.6.0
    CI: passing
    • 33a243c build(go): require Go 1.27 and the ermite modules that declare it
    • aba298d Merge branch 'perf/job-timing-and-caches' into main (!4)
    • 2b9f5c9 refactor(registryproxy): simplify the proxy store, guest timing contract and size parsing
    • 25d29f5 fix(dnsfwd): fall back to TCP when an upstream UDP answer is lost
    • 57617df feat(registryproxy): cache Docker Hub pulls of the sandboxes on the runner host
  • vev v0.9.1 MIT

    Tiny and remote friendly terminal multiplexer in pure Go.

    • terminal-multiplexer
    commits
    2 050
    last 30 days
    310
    last activity
    last tag
    v0.9.1
    CI: passing
    • ece7682 fix(install): parse tag_name from single-line release JSON
    • 5e11c66 ci(release): publish releases on ermite instead of GitHub
    • 8c96729 chore(deps): bump vev-vt to v0.7.2
    • 22e65fb ci: run the macos-14 job on GitHub only
    • e5e4ded Merge pull request 'feat(status): show recent-session ranks while Ctrl is held and fade MRU text' (#26) from feat/mru-text-dimming into main
  • neferafk GPL-3.0

    Idle daemon for Wayland: fade, session lock, screens off and suspend

    commits
    37
    last 30 days
    37
    last activity
    last tag
    v0.5.1
    CI: passing
    • c21f374 ci(release): publish releases on ermite instead of GitHub
    • 0f3d297 Merge pull request 'ci(tools): pin Mockery v3.8.1 and Staticcheck 2026.2.2' (#4) from ci/go-tooling into main
    • 844ca59 ci(tools): pin Mockery v3.8.1 and Staticcheck 2026.2.2
    • 08cf307 Merge pull request 'refactor(config): parse and watch the config with kvconf' (#2) from refactor/kvconf into main
    • 3421f16 fix(config): keep idle locking alive when the config watch fails
  • neferbar v0.3.1 MIT

    A one-line status bar for Wayland: scripts print text, neferbar draws it.

    commits
    91
    last 30 days
    91
    last activity
    last tag
    v0.3.1
    CI: passing
    • 7a3b92c ci(release): publish releases on ermite instead of GitHub
    • ed9eea0 Merge GitHub README edit into main
    • 57291a6 Merge pull request 'ci(tools): install pinned Staticcheck 2026.2.2' (#7) from ci/go-tooling into main
    • bcf5aff ci(tools): install pinned Staticcheck 2026.2.2
    • 32e241e Merge pull request 'refactor(watch): replace internal/fswatch with kvconf' (#5) from refactor/kvconf into main
  • hexcheck MIT

    Go architecture linter for hexagonal boundaries

    commits
    30
    last 30 days
    15
    last activity
    last tag
    v0.4.0
    CI: passing
    • ae76d4b ci(release): skip the release job on the GitHub mirror
    • fe6c13d build(go): require Go 1.27 so the toolchain picks the latest patch
    • b3a79eb ci(release): reach the forge through the runner-provided API URL, require Go 1.27.3
    • 9e8c6ef ci(release): publish GoReleaser releases on the ermite forge
    • 21d1792 docs(changelog): release v0.4.0
  • purego Apache-2.0

    no description

    commits
    334
    last 30 days
    19
    last activity
    • 3a10209 style(callback): gofmt noescape directive comment
    • 915ecc7 docs(syscall): describe Syscall15 allocations as pooled
    • ba8f819 fix(syscall): keep fixed-arity syscall args off the goroutine stack
    • 9fea51b test(syscall): prove pointer liveness across Syscall6
    • d3eb2c6 feat(syscall): add fixed-arity zero-allocation Syscall6 and Syscall15
  • zut Other

    Yet another forked coding agent harness, lightweight and written in go.

    commits
    1 077
    last 30 days
    57
    last activity
    last tag
    v0.51.0
    CI: passing
    • 4509ec7 ci(release): read the commit list without process substitution
    • 98d8255 ci(release): tag main every morning on ermite and publish in the same run
    • 6baf0bb ci(lint): run golangci-lint v2.14.0, which supports go 1.27
    • 513f4cf ci: drop the auto-tag policy test and run macOS and Windows on GitHub only
    • 5ac6a24 ci(release): publish releases on ermite from pushed tags
  • purego-libwayland MIT

    Go bindings for libwayland-server without cgo (purego)

    commits
    75
    last 30 days
    75
    last activity
    last tag
    v0.12.0
    CI: passing
    • 15e9011 build(deps): bump purego to v0.13.0-bnema.2 for callback-safe Syscall6
    • c5dcda0 test(server): drive fd sources over raw socketpairs and report dispatch errno
    • 5042ed7 test(server): drop placeholder SetWritable kernel-error test
    • 6ef41f0 fix(server): expose global metadata before advertisement filtering
    • e13fc36 feat(server): add global filtering and writable fd interest
  • xturbo MIT

    no description

    commits
    26
    last 30 days
    26
    last activity
    last tag
    v0.1.0
    CI: passing
    • 602baa7 test(runtime): unblock the flood writer by closing the client in TestSyncDeadlineFlood
    • c65691c docs(readme): document handshake blocking and widen fuzz timeout
    • 1bfe747 ci(fuzz): give generated targets a shorter fuzz time so the workflow fits its timeout
    • 32dc121 docs(readme): add README with a compiling example and benchmark table
    • bb30cc0 ci(fuzz): add make fuzz target and a fuzz workflow on main
  • dumber MIT

    Keyboard-driven web browser for tiling WMs, inspired by Zellij, built in Go.

    • browser
    • cef
    • chrome-embedded-framework
    • dmenu
    • fuzzel
    • go
    • gtk4
    • hyprland
    • keyboard-driven
    • linux
    • multiplexer
    • niri
    • rofi
    • sway
    • tiling-window-manager
    • wayland
    • webkitgtk
    • zellij
    commits
    2 633
    last 30 days
    85
    last activity
    last tag
    v0.33.2
    CI: passing
    • 5041353 chore(deps): merge the go-dependencies bump from the GitHub mirror
    • 355c90a ci(release): publish releases, Flatpak and AUR packages from ermite
    • 041bc53 chore(deps): bump the go-dependencies group with 2 updates (#469)
    • 57f21d6 Merge pull request 'fix(favicon): rasterize SVG favicons instead of rejecting them' (#14) from fix/favicon-svg-raster into main
    • a5fd538 fix(favicon): rasterize SVG favicons instead of rejecting them
  • ermite AGPL-3.0

    Single-user Git forge in one Go binary

    • ci
    • code-review
    • git-forge
    • github-actions
    • golang
    • htmx
    • self-hosted
    commits
    606
    last 30 days
    606
    last activity
    last tag
    v0.36.0
    CI: passing
    • 1fb2421 feat(web): render README videos with native players (!37)
    • 80d5067 fix(web): doc tabs side by side from the left (!36)
    • 2aca1df fix(web): summary doc tabs side by side from the left (!35)
    • e86dbd6 feat(web): summary doc tabs, license and release badges on the index, keyboard fixes (!34)
    • 6a915d6 feat(web): footer theme switch (auto, light, dark) (!33)
  • gordon v3.5.0 AGPL-3.0

    Self-hosted container deployment. Push an image, declare an app, deploy it.

    • containers
    • deployment
    • golang
    • self-hosted
    commits
    1 574
    last 30 days
    72
    last activity
    last tag
    v3.5.0
    CI: passing
    • bac21c6 chore(license): relicense under AGPL-3.0-only
    • 8345e76 ci(release): publish releases on ermite and install from git.bnema.dev
    • c9e9163 Merge pull request #301 from bnema/feat/app-capabilities
    • 694968b fix(apps): refuse reuse of containers exceeding narrowed capability policy
    • 2950329 feat(apps): add operator-gated Linux capabilities for app services
  • nefergui GPL-3.0

    Native immediate-mode GUI library for Go, built for Wayland with Vulkan rendering and CSS styling.

    commits
    77
    last 30 days
    77
    last activity
    last tag
    v0.7.3
    CI: passing
    • bcc9a45 Merge branch 'fix/image-dimension-limit' into main (!1)
    • db488ae fix(vkdevice): accept images up to 8192 pixels per side
    • b3b5586 Merge pull request 'ci(tools): install pinned Mockery v3.8.1 and Staticcheck 2026.2.2' (#3) from ci/go-tooling into main
    • 02abe7f ci(tools): install pinned Mockery v3.8.1 and Staticcheck 2026.2.2
    • 71ebe61 test(vkdevice): add the image after cached glyphs in the upload regression test
  • neferwl AGPL-3.0

    A Wayland compositor that spends its frames on your apps, not on itself.

    • gaming
    • golang
    • linux
    • tiling-window-manager
    • wayland
    • wayland-compositor
    commits
    867
    last 30 days
    867
    last activity
    last tag
    v0.10.0
    CI: passing
    • fdd661a Merge branch 'fix/drm-enomem-retry' into main (!25)
    • 6d4359d Merge branch 'fix/nvidia-cursor-plane' into main (!26)
    • 007c134 chore(license): relicense under AGPL-3.0-only
    • bd83a2d test(drm): cover cursor fallback state, crop rows and file ownership
    • a5f1806 fix(drm): allocate hardware cursor images as KMS dumb buffers
  • nefercap GPL-3.0

    It's an all in one screenshot or recording tool for wayland compositors. You tab to switch and the UI is nice.

    • compositor
    • recording-software
    • wayland
    commits
    90
    last 30 days
    90
    last activity
    last tag
    v0.6.0
    CI: passing
    • 74503b0 ci(release): publish releases on ermite instead of GitHub
    • 7d47882 Merge pull request 'feat(selection): toggle the frozen screen with F in the screenshot selector' (#12) from feat/freeze-key into main
    • 753c87f fix(selection): build every overlay before starting any so Tab and F never race the wake list
    • 07981f5 feat(selection): toggle the frozen screen with F in the screenshot selector
    • 1218e29 Merge pull request 'fix(selection): fade the HUD out while a region is dragged' (#11) from fix/hide-hud-while-dragging into main

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

↑↓ moveenter openesc close