Documentation
¶
Overview ¶
Command hive-desktop is the desktop app's entrypoint. It does four things: apply the bootstrap overrides, build the headless core, mount the Wails adapter over it, and run. Everything else belongs to cmd/desktop/internal/app (what the app does) or cmd/desktop/internal/adapter/wailsui (how a window talks to it).
Directories
¶
| Path | Synopsis |
|---|---|
|
Command devserver fronts the GitHub API for local development: it caches responses so several desktop instances share one rate-limit budget, rewrites them from a config-driven overlay so workflows can be simulated against real data, and pushes webhook payloads at a running instance's local listener.
|
Command devserver fronts the GitHub API for local development: it caches responses so several desktop instances share one rate-limit budget, rewrites them from a config-driven overlay so workflows can be simulated against real data, and pushes webhook payloads at a running instance's local listener. |
|
Command devtools prepares an isolated worktree-local Hive Desktop development instance and writes the environment mise loads before launch.
|
Command devtools prepares an isolated worktree-local Hive Desktop development instance and writes the environment mise loads before launch. |
|
internal
|
|
|
adapter/httpapi
Package httpapi is the HTTP adapter over app.App, mounted on the webhook listener's loopback server, which also hosts the optional pprof handler (ADR pprof-debug-endpoint).
|
Package httpapi is the HTTP adapter over app.App, mounted on the webhook listener's loopback server, which also hosts the optional pprof handler (ADR pprof-debug-endpoint). |
|
adapter/mcpsrv
Package mcpsrv is the agent-facing MCP adapter over app.App: the desktop's capabilities as MCP tools, served over Streamable HTTP on the same loopback server that hosts the webhook listener (ADR agent-http-api).
|
Package mcpsrv is the agent-facing MCP adapter over app.App: the desktop's capabilities as MCP tools, served over Streamable HTTP on the same loopback server that hosts the webhook listener (ADR agent-http-api). |
|
adapter/wailsui
Package wailsui is the Wails driving adapter: the service structs the frontend calls over RPC, the native shell (window, tray, updater, notifications), and the event signals it emits.
|
Package wailsui is the Wails driving adapter: the service structs the frontend calls over RPC, the native shell (window, tray, updater, notifications), and the event signals it emits. |
|
app
Package app is the headless core's facade: the App value driving adapters hold, the error vocabulary they translate, and the per-domain services that own orchestration.
|
Package app is the headless core's facade: the App value driving adapters hold, the error vocabulary they translate, and the per-domain services that own orchestration. |
|
app/actions
Package actions implements the desktop pipeline's actions.yml schema: the output/action layer a flow's terminal `action` node targets (see cmd/desktop/internal/app/flow's ActionConfig) and the source for the desktop detail pane's action buttons.
|
Package actions implements the desktop pipeline's actions.yml schema: the output/action layer a flow's terminal `action` node targets (see cmd/desktop/internal/app/flow's ActionConfig) and the source for the desktop detail pane's action buttons. |
|
app/activity
Package activity is the desktop app's user-facing audit log.
|
Package activity is the desktop app's user-facing audit log. |
|
app/agentws
Package agentws owns the on-disk agent-workspace root: the directory tree holding mcps.yaml, .shared/, and one directory per workspace (spec §4).
|
Package agentws owns the on-disk agent-workspace root: the directory tree holding mcps.yaml, .shared/, and one directory per workspace (spec §4). |
|
app/canvas
Package canvas renders canvas documents for the desktop: the html sanitizer the pane and the export run through, and the markdown export.
|
Package canvas renders canvas documents for the desktop: the html sanitizer the pane and the export run through, and the markdown export. |
|
app/configmigrate
Package configmigrate upgrades an older on-disk config document to the version the running build expects, forward-only and one step per version.
|
Package configmigrate upgrades an older on-disk config document to the version the running build expects, forward-only and one step per version. |
|
app/data/queries
Package queries is the desktop app's dedicated SQLite store: the event log (event_log/consumer_offset), durable inbox substrate (inbox_item/inbox_event), feed membership claims, output commands, activity events and jobs, and per-node run metrics.
|
Package queries is the desktop app's dedicated SQLite store: the event log (event_log/consumer_offset), durable inbox substrate (inbox_item/inbox_event), feed membership claims, output commands, activity events and jobs, and per-node run metrics. |
|
app/dirwatch
Package dirwatch runs a debounced callback when matching files in a directory change.
|
Package dirwatch runs a debounced callback when matching files in a directory change. |
|
app/events
Package events is the core's typed publish/subscribe bus.
|
Package events is the core's typed publish/subscribe bus. |
|
app/flow
Package flow implements the flows/*.yaml config schema for the desktop pipeline's Node-RED-style graph: a strict decoder, a per-node-type registry, cross-file reference validation, and directory loaders.
|
Package flow implements the flows/*.yaml config schema for the desktop pipeline's Node-RED-style graph: a strict decoder, a per-node-type registry, cross-file reference validation, and directory loaders. |
|
app/fonts
Package fonts enumerates the font families installed on this machine so the app's chrome and its terminals can be pointed at one of them.
|
Package fonts enumerates the font families installed on this machine so the app's chrome and its terminals can be pointed at one of them. |
|
app/hiveconf
Package hiveconf reads the hive config file the `hive` binary shares.
|
Package hiveconf reads the hive config file the `hive` binary shares. |
|
app/hivewatch
Package hivewatch observes hive.db state that another process writes.
|
Package hivewatch observes hive.db state that another process writes. |
|
app/icons
Package icons holds the curated glyph set feed rows and sidebar entries draw from.
|
Package icons holds the curated glyph set feed rows and sidebar entries draw from. |
|
app/ingest
Package ingest is the pipeline's producer side: the poll loop that turns configured source connectors into event_log rows, and the resolver that turns the current flow set into the connector instances it drives.
|
Package ingest is the pipeline's producer side: the poll loop that turns configured source connectors into event_log rows, and the resolver that turns the current flow set into the connector instances it drives. |
|
app/jobs
Package jobs is the desktop app's live action-run lifecycle.
|
Package jobs is the desktop app's live action-run lifecycle. |
|
app/mcpcatalog
Package mcpcatalog is the shipped MCP server catalogue: the vocabulary one entry is declared in (Stability, Transport, Server, Descriptor) and the registry that holds every entry.
|
Package mcpcatalog is the shipped MCP server catalogue: the vocabulary one entry is declared in (Stability, Transport, Server, Descriptor) and the registry that holds every entry. |
|
app/perf
Package perf records UI performance spans to a size-capped JSONL file for offline analysis.
|
Package perf records UI performance spans to a size-capped JSONL file for offline analysis. |
|
app/procstats
Package procstats samples what this install is costing the machine: the desktop process, the processes it parents (a terminal's shell, an agent), and the Go runtime's own view of itself.
|
Package procstats samples what this install is costing the machine: the desktop process, the processes it parents (a terminal's shell, an agent), and the Go runtime's own view of itself. |
|
app/profileimg
Package profileimg stores a profile's (flow's) avatar as a normalized square PNG under the app data dir — one file per flow id.
|
Package profileimg stores a profile's (flow's) avatar as a normalized square PNG under the app data dir — one file per flow id. |
|
app/prompts
Package prompts owns every paste-ready LLM prompt Hive Desktop offers, and the templates they are composed from.
|
Package prompts owns every paste-ready LLM prompt Hive Desktop offers, and the templates they are composed from. |
|
app/ptyterm
Package ptyterm runs ephemeral terminals: this process owns a PTY and the process on the far end of it, with no terminal multiplexer in between.
|
Package ptyterm runs ephemeral terminals: this process owns a PTY and the process on the far end of it, with no terminal multiplexer in between. |
|
app/report
Package report builds the two halves of a bug report, which are deliberately not one artifact.
|
Package report builds the two halves of a bug report, which are deliberately not one artifact. |
|
app/runtime
Package runtime is the flow engine: it executes one flow over one batch of event-log messages and produces the CommitBatch that batch is worth.
|
Package runtime is the flow engine: it executes one flow over one batch of event-log messages and produces the CommitBatch that batch is worth. |
|
app/runtime/js
Package js implements the engine's ScriptRuntime port with goja, a pure-Go ECMAScript interpreter.
|
Package js implements the engine's ScriptRuntime port with goja, a pure-Go ECMAScript interpreter. |
|
app/schedule
Package schedule launches recurring agent chats.
|
Package schedule launches recurring agent chats. |
|
app/settings
Package settings resolves the desktop app's typed settings and on-disk locations.
|
Package settings resolves the desktop app's typed settings and on-disk locations. |
|
app/skills
Package skills renders Hive Desktop's paste-ready prompts in the Agent Skills format: a SKILL.md with YAML frontmatter (name, description) over the prompt text.
|
Package skills renders Hive Desktop's paste-ready prompts in the Agent Skills format: a SKILL.md with YAML frontmatter (name, description) over the prompt text. |
|
app/slug
Package slug is the id rule the flow and action schemas share.
|
Package slug is the id rule the flow and action schemas share. |
|
app/sourcemark
Package sourcemark stores a source node's custom feed mark as a normalized square PNG under the app data dir, content-addressed by hash.
|
Package sourcemark stores a source node's custom feed mark as a normalized square PNG under the app data dir, content-addressed by hash. |
|
app/sources
Package sources is the source connector registry: the one place every connector type is declared, and the lookups the rest of the app resolves a connector through.
|
Package sources is the source connector registry: the one place every connector type is declared, and the lookups the rest of the app resolves a connector through. |
|
app/sources/bindingstore
Package bindingstore persists each connected account's non-secret binding — the host, stack, or project a credential was connected to — keyed by credential ref.
|
Package bindingstore persists each connected account's non-secret binding — the host, stack, or project a credential was connected to — keyed by credential ref. |
|
app/sources/canonical
Package canonical is the item contract a connector uses when its payload is the canonical item shape itself (ADR canonical-item-contract) rather than a provider's own: the top-level `state` vocabulary, the classifier that maps it to lifecycle, and the rewrite an authoritative snapshot mints for an item that left it.
|
Package canonical is the item contract a connector uses when its payload is the canonical item shape itself (ADR canonical-item-contract) rather than a provider's own: the top-level `state` vocabulary, the classifier that maps it to lifecycle, and the rewrite an authoritative snapshot mints for an item that left it. |
|
app/sources/connector
Package connector is the vocabulary a source connector is declared in: the Descriptor that describes one, the Config it parses, and the Instance the app constructs per use.
|
Package connector is the vocabulary a source connector is declared in: the Descriptor that describes one, the Config it parses, and the Instance the app constructs per use. |
|
app/sources/exec
Package exec is the command source connector: it runs the user's own command on the poll tick and ingests its stdout as an authoritative snapshot, so a CLI is a first-party source with no external scheduler, no webhook bridge, and no hand-rolled state file.
|
Package exec is the command source connector: it runs the user's own command on the poll tick and ingests its stdout as an authoritative snapshot, so a CLI is a first-party source with no external scheduler, no webhook bridge, and no hand-rolled state file. |
|
app/sources/gitea
Package gitea is the Gitea source connector: the config a gitea source node carries, the descriptor declaring what the connector supports, and the instance the producer drains on a tick.
|
Package gitea is the Gitea source connector: the config a gitea source node carries, the descriptor declaring what the connector supports, and the instance the producer drains on a tick. |
|
app/sources/gitea/giteaclient
Package giteaclient is the desktop's Gitea/Forgejo REST client: token validation, the issue/PR search, the notification inbox, and the single-issue lookup absence confirmation needs.
|
Package giteaclient is the desktop's Gitea/Forgejo REST client: token validation, the issue/PR search, the notification inbox, and the single-issue lookup absence confirmation needs. |
|
app/sources/github
Package github is the GitHub source connector: the config a github source node carries, the descriptor declaring what the connector supports, and the instance the producer drains on a tick.
|
Package github is the GitHub source connector: the config a github source node carries, the descriptor declaring what the connector supports, and the instance the producer drains on a tick. |
|
app/sources/github/feed
Package feed is the desktop's GitHub fetch layer: the wire Item type and a cached, coalesced LiveProvider the pipeline producer uses to turn a source into event_log rows.
|
Package feed is the desktop's GitHub fetch layer: the wire Item type and a cached, coalesced LiveProvider the pipeline producer uses to turn a source into event_log rows. |
|
app/sources/github/ghclient
Package ghclient is the desktop's own GitHub REST/GraphQL client: in-app authentication (OAuth device flow, PAT validation via User) and the typed API calls the connector needs (batched search, notifications, single-issue hydration).
|
Package ghclient is the desktop's own GitHub REST/GraphQL client: in-app authentication (OAuth device flow, PAT validation via User) and the typed API calls the connector needs (batched search, notifications, single-issue hydration). |
|
app/sources/grafana
Package grafana is the Grafana source connector: the metrics and alerts source nodes and the stack auth that connects a stack.
|
Package grafana is the Grafana source connector: the metrics and alerts source nodes and the stack auth that connects a stack. |
|
app/sources/grafana/client
Package client is the desktop's Grafana HTTP client: token validation, a PromQL query through the datasource proxy, the firing-alerts list, and the IRM/OnCall alert groups.
|
Package client is the desktop's Grafana HTTP client: token validation, a PromQL query through the datasource proxy, the firing-alerts list, and the IRM/OnCall alert groups. |
|
app/sources/itemtext
Package itemtext derives the session text an inbox item suggests: the branch name a session on it would use, and the default prompt the launch dialog opens with.
|
Package itemtext derives the session text an inbox item suggests: the branch name a session on it would use, and the default prompt the launch dialog opens with. |
|
app/sources/posthog
Package posthog is the PostHog source connector: the error-tracking and insight-alert source nodes and the project auth that connects a project.
|
Package posthog is the PostHog source connector: the error-tracking and insight-alert source nodes and the project auth that connects a project. |
|
app/sources/posthog/client
Package client is the desktop's PostHog HTTP client: project listing (which doubles as token validation), the error-tracking issue query, and the insight-alert list.
|
Package client is the desktop's PostHog HTTP client: project listing (which doubles as token validation), the error-tracking issue query, and the insight-alert list. |
|
app/sources/rss
Package rss is the feed source connector: it fetches one RSS, Atom, or JSON Feed URL on the poll tick and ingests its entries as items, so a blog, a release feed, or a status page is a first-party source with no bridge in between.
|
Package rss is the feed source connector: it fetches one RSS, Atom, or JSON Feed URL on the poll tick and ingests its entries as items, so a blog, a release feed, or a status page is a first-party source with no bridge in between. |
|
app/sources/sourcehttp
Package sourcehttp is the HTTP toolkit a pull connector's API client is built over: the failure taxonomy, status and rate-limit mapping, conditional requests, and a logging transport.
|
Package sourcehttp is the HTTP toolkit a pull connector's API client is built over: the failure taxonomy, status and rate-limit mapping, conditional requests, and a logging transport. |
|
app/sources/webhook
Package webhook is the webhook source connector: the config a webhook source node carries, the descriptor declaring what the connector supports, and the local HTTP listener deliveries arrive on.
|
Package webhook is the webhook source connector: the config a webhook source node carries, the descriptor declaring what the connector supports, and the local HTTP listener deliveries arrive on. |
|
app/telemetry
Package telemetry configures the OpenTelemetry and Pyroscope SDKs, registers the OTel providers globally, and owns their shutdown (ADR continuous-profiles-are-pushed-directly-with-pyroscope).
|
Package telemetry configures the OpenTelemetry and Pyroscope SDKs, registers the OTel providers globally, and owns their shutdown (ADR continuous-profiles-are-pushed-directly-with-pyroscope). |
|
devproxy
Package devproxy is the contract shared by cmd/desktop/devserver and cmd/desktop/devtools: where the development GitHub proxy listens, and how to tell whether one is already running there.
|
Package devproxy is the contract shared by cmd/desktop/devserver and cmd/desktop/devtools: where the development GitHub proxy listens, and how to tell whether one is already running there. |
|
Package releasenotes embeds Hive Desktop's changelog.
|
Package releasenotes embeds Hive Desktop's changelog. |
Click to show internal directories.
Click to hide internal directories.