ov/skills/dbus/SKILL.md
D-Bus interaction inside containers via native Go godbus/dbus/v5. MUST be invoked before any work involving: ov test dbus commands, desktop notifications, D-Bus method calls, service introspection, or session bus interaction.
npx skillsauth add overthinkos/overthink-plugins dbusInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Send desktop notifications, call D-Bus methods, list services, and introspect objects inside running containers. Uses native Go (godbus/dbus/v5) -- no dependency on dbus-send CLI. All commands operate on the container's session bus.
Every ov test dbus <method> (list/call/introspect/notify) is authorable as a dbus: verb inside a tests: block. Method-specific fields (dest:, path:, method:, args:, text:) are siblings of the verb line. See /ov:test for the full YAML shape. Example: - dbus: list\n stdout:\n contains: "org.freedesktop.Notifications".
| Action | Command | Description |
|--------|---------|-------------|
| Send notification | ov test dbus notify <image> "title" "body" | Desktop notification via Notifications interface |
| Call method | ov test dbus call <image> <dest> <path> <method> [args...] | Generic D-Bus method call |
| List services | ov test dbus list <image> | List all registered session bus services |
| Introspect | ov test dbus introspect <image> <dest> <path> | Introspect a service's interfaces and methods |
# Simple notification
ov test dbus notify sway-browser-vnc "Build Complete" "Image built successfully"
# Notification appears via swaync or other notification daemon
# Call any D-Bus method on the session bus
ov test dbus call sway-browser-vnc org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.GetCapabilities
# See all registered services on the container's session bus
ov test dbus list sway-browser-vnc
# View interfaces, methods, signals, and properties
ov test dbus introspect sway-browser-vnc org.freedesktop.Notifications /org/freedesktop/Notifications
dbus layer)swaync)ov start <image>)/ov:test -- parent router; ov test dbus … is how every invocation is dispatched./ov:cdp -- Chrome DevTools Protocol (sibling verb under ov test)./ov:wl -- Wayland desktop automation (sibling verb under ov test)./ov:vnc -- VNC desktop automation (sibling verb under ov test)./ov:cmd -- single command execution in running containers/ov:shell -- interactive shell access/ov-layers:dbus -- D-Bus session bus layer configuration/ov-layers:swaync -- notification daemon layertools
Use when authoring or modifying a charly PLUGIN — a candy with a `plugin:` block that contributes Providers (verbs/kinds/deploy-targets/steps/builders/commands), its own CUE schema, builtin (compiled-in) or external (out-of-tree git repo). Covers the unified Provider model, the per-plugin CUE-schema contract (single source → Go params for dev + schema-over-Describe RPC for runtime), the SDK, and the loader.
tools
The CUE data-validation / configuration CLI (cue), pinned to v0.16.1. Use when working with the cue candy, installing the cue binary into a box or onto a target:local dev host, or running the offline schema-vendoring pipeline that feeds charly's egress validation.
tools
CUE EGRESS validation — validating (and, where it adds value, generating) the config files charly WRITES to a system BEFORE the bytes hit disk. MUST be invoked before working on charly/egress.go, the vendored schemas under candy/plugin-egress/egress-schemas/vendor/, the ValidateEgress / registerVendoredEgressKind path, the offline `task cue:vendor` pipeline, or adding an egress schema for any written artifact (cloud-init, k8s manifests, traefik routes, runtime config, install ledger, systemd/quadlet units, ssh_config, libvirt XML).
tools
Kubernetes cluster-probe declarative check verb — the `kube:` check verb (nodes, pods, ingress, storage class, addon health, apply/delete, and arbitrary resource GETs) served out-of-process by the candy/plugin-kube plugin (vendored client-go; no external kubectl required).