Modules
Minimal BEAM-native coding-agent substrate.
Convenience helpers for starting Vibe's Jido-backed coding agent.
Minimal Jido.AI ReAct agent wired to Vibe's coding tools.
Injects image tool outputs as multimodal follow-up user content.
Jido agent server lifecycle bridge.
Ephemeral runtime memory scoped by running agent/subagent id.
Agent startup option resolution and validation.
User-editable agent role/model profiles backed by TOML.
Dispatches Jido streaming lifecycle signals to per-agent callbacks.
Jido plugin that translates runtime and tool signals into Vibe stream callbacks.
ETS-backed callback and runtime-call registry for agent streaming.
Opt-in NDJSON trace for assistant streaming order diagnostics.
OTP application supervisor.
Auth provider registry and dispatch.
ChatGPT/Codex OAuth login compatible with pi's OpenAI Codex flow.
Local HTTP server for OAuth redirect callbacks.
OpenCode API-key authentication for opencode and opencode-go providers.
OpenRouter API-key authentication.
Behaviour for authentication providers.
JSON-backed credential storage under ~/.vibe/auth.json.
Small immutable budget struct for recursive/subagent work.
Compile-time build metadata embedding.
CLI entrypoint for argv parsing and command dispatch.
CLI command dispatch and behaviour definition.
CLI attach command: connect to a live session.
CLI connect command: connect to a trusted remote Vibe node.
Default CLI entrypoint: prompt, TUI, eval, and flag dispatch.
CLI command for running external gateway backends.
CLI help command: built-in topic browser.
CLI new command: create a fresh server session.
CLI search command: FTS query shortcut.
CLI send command: dispatch a prompt to a session by ID.
CLI server command: start, stop, restart, status.
CLI sessions command: list and prune sessions.
CLI skill command: list, show, and manage skills.
CLI storage command: migrate, search, import, vacuum.
CLI subagents command: list and inspect subagent jobs.
CLI tui-trace command: replay TUI trace recordings.
Escript entrypoint for the standalone vibe binary.
Session-scoped log file management for CLI runs.
CLI output formatting: ok/error results, tables, JSON.
CLI argv parser using OptionParser strict mode.
Prompt execution for print mode and TUI startup.
Server subcommand dispatch: start, stop, restart, status.
Session listing, prune, and attach helpers for CLI.
Session list filtering by status, age, and flags.
Storage subcommand dispatch: migrate, search, import.
Subagent listing and inspection for CLI.
Single ExAST gateway for structural Elixir search, replace, and diff.
Structured AST operation result.
Line-level text diff for AST replace previews.
Validation gates Vibe can run before and after self-modification.
Single Expert LSP gateway.
LSP JSON-RPC client for language server communication.
Supervised OS command execution for eval sessions and agents.
Supervised background command job.
Structured result from a supervised command execution.
Streaming output capture for long-running commands.
Task-based command execution worker.
Context compaction for Vibe sessions.
LLM-driven context compaction for long sessions.
Retrieves relevant context from storage and memory for prompts.
Serializes session history for compaction and context injection.
Compile-time gated debug hooks.
Built-in task-focused documentation for Vibe users.
Runtime environment detection helpers.
Runtime Elixir evaluation with captured IO, timeouts, and session state.
Per-session stateful Elixir evaluator process.
Structured eval display result.
Sandboxed Elixir evaluation via Dune for untrusted input.
UI-neutral event emitted by Vibe sessions.
Typed semantic assistant streaming event payloads.
Payload for an assistant response aborting.
Payload for assistant visible-text streaming.
Payload for an assistant stream finishing.
Payload for an assistant stream starting.
Payload for assistant hidden-thinking streaming.
Registry-backed access point for UI sessions.
Typed semantic command event payloads.
Payload for requesting patch confirmation.
Payload for a submitted user prompt.
Payload for a submitted slash command.
Typed semantic context-compaction event payloads.
Payload for context compaction failing.
Payload for context compaction finishing.
Payload for context compaction starting.
Typed semantic event payloads for user-initiated Elixir evals.
Payload emitted when a user eval finishes.
Payload emitted when a user eval starts.
Typed semantic goal event payloads.
Payload for clearing a session goal.
Payload for starting autonomous goal continuation.
Payload for setting a session goal.
Payload for updating a session goal.
Typed semantic message event payloads.
Payload for a completed assistant message.
Payload for clearing visible session messages.
Payload for a user message becoming visible in a session.
Typed semantic model-selection event payloads.
Payload for selecting model reasoning effort.
Payload for selecting a model.
Payload for usage accounting updates.
Typed semantic notification event payloads.
Payload for adding a transient notification.
Payload for expiring a transient notification.
Typed semantic plugin presentation event payloads.
Payload for clearing plugin status text.
Payload for updating plugin status text.
Payload for clearing a plugin widget.
Payload for updating a plugin widget.
Typed semantic runtime alert event payloads.
Payload for a runtime alert being cleared.
Payload for a runtime alert being set.
Typed semantic selector and overlay event payloads.
Payload for closing the active selector.
Payload for confirming selector choice.
Payload for moving selector focus.
Payload for opening a selector or confirmation overlay.
Typed semantic session event payloads.
Payload for the active-session count changing.
Payload for backgrounding the current session.
Payload for requesting a new session.
Payload for selecting a different session.
Typed semantic subagent lifecycle event payloads.
Payload for a subagent finishing.
Payload for a subagent starting.
Typed semantic surface-state event payloads.
Payload for confirmation selector requests.
Payload for updating the hidden-thinking label.
Payload for closing the active overlay.
Payload for opening an overlay.
Payload for session status changes.
Payload for updating the session title.
Payload for toggling an expanded tool result.
Payload for toggling prompt truncation.
Payload for updating the working indicator label.
Typed semantic tool lifecycle event payloads.
Payload for a tool finishing.
Payload for a tool starting.
Payload for a tool update.
File read, write, and edit operations for agent tools.
Stores large tool artifacts outside inline session JSON payloads.
Durable reference to an image artifact stored outside inline JSON.
Typed result returned by file reads.
Shared human-readable formatting helpers.
Introspection helpers for external gateway runtimes.
Behaviour implemented by outbound messaging gateway adapters.
Behaviour for external chat gateway backends.
Dispatches normalized gateway messages into Vibe semantic sessions.
Normalized media attachment metadata from an external chat gateway.
Normalized inbound message from an external chat gateway.
Shared gateway option parsing helpers.
Generic runtime for external chat gateways.
Bridges Vibe session assistant stream events back to an external gateway.
Deterministic session keys for external gateway conversations.
Origin metadata for a message entering Vibe through an external gateway.
Converts streamed assistant text into throttled gateway message edits.
Supervisor for configured external gateway runtimes.
Convenience API for starting the Telegram gateway backend.
Outbound Telegram Bot API adapter for the generic Vibe gateway contract.
Authorization and group trigger rules for Telegram gateway messages.
Telegram implementation of the generic gateway backend contract.
Runtime configuration for the Telegram gateway.
Telegram long-polling inbound transport for the generic gateway runtime.
Telegram-specific assistant stream consumer.
Telegram-safe text rendering and splitting helpers.
Converts Telegram update maps/structs into Vibe gateway messages.
Persisted long-running session goals and model-facing goal helpers.
Persisted long-running goal for a Vibe session.
Image data helpers for model, eval, and renderer boundaries.
Pure Elixir image dimension parsers for supported inline image formats.
Resize images through pluggable supervised command backends.
Behaviour for image resize backends.
Shared helpers for command-backed image resize backends.
ImageMagick-backed image resize backend.
macOS sips-backed image resize backend.
Image resize backend powered by libvips' vips CLI.
Eval-friendly Markdown rendering helpers.
Typed Markdown display value for eval and UI boundaries.
Converts structured Vibe/plugin data into Markdown for eval, TUI, and web rendering.
Curated, durable memory for profile, workspace, session, and agent scopes.
Default memory provider backed by SQLite storage.
Curated long-term memory lifecycle: turn hooks, sync, and recall.
Behaviour for memory providers managed by Vibe.Memory.Manager.
Provider-neutral model content parts.
Image content part with inline base64 data.
Text content part.
Direct LLM generation bypassing the Jido agent loop.
Model effort values used by agent profiles and sessions.
Normalizes model/provider failures into semantic UI errors.
Fuzzy model resolution with model:effort shorthand.
Model selection and provider discovery.
Model and effort switching helpers.
Applies provider transport policy to model request options.
Pools reusable ReqLLM Responses WebSocket sessions per Vibe session and model.
Normalized model usage extraction for session accounting.
Shared parameter coercion helpers.
Canonical filesystem paths for Vibe runtime data.
Behaviour for Vibe plugins.
Describes an Elixir API exposed by a plugin for stateful eval sessions.
Context passed to plugins and plugin workers.
Automatic plugin module discovery from loaded applications.
Supervised plugin lifecycle, discovery, and dispatch.
Runs plugin callbacks outside the plugin manager process.
Collects commands, APIs, presentation documents, and prompt blocks from plugins.
Composes ordered plugin pipeline callbacks.
UI context exposed to plugins and plugin background workers.
ETS-backed session waiter registry for interactive plugins.
Plugin: desktop notification when the agent finishes or fails.
Desktop notifications via terminal OSC escape sequences.
Plugin: interactive question tool for the agent.
Model-facing action: ask the user a question with selectable options.
Plugin: load rule files from ~/.vibe/rules/ into the system prompt.
Load rule files from ~/.vibe/rules/ into the system prompt.
Plugin: block destructive commands until the user confirms.
Safety checks for potentially destructive commands.
Web search plugin and provider-neutral eval API exposed as Web.
Behaviour for URL fetch providers used by Vibe's Web eval API.
Normalized result for a URL fetch request.
HTML parsing and extraction helpers for Vibe.Plugins.WebSearch.
Exa-backed implementation of Vibe.Plugins.WebSearch.SearchProvider.
Local Req-based implementation of Vibe.Plugins.WebSearch.FetchProvider.
Typed web search result for plugin UI.
Normalized web search result item.
Shared Markdown rendering for URL-like search results.
Behaviour for web search providers used by Vibe's Web eval API.
Normalized result for a web search request.
Renderer-neutral presentation document shared by plugins and surfaces.
Renderer-neutral presentation for user-initiated eval executions.
Markdown rendering for renderer-neutral presentation values.
Renders presentation values as Markdown.
Converts domain values into renderer-neutral presentation values.
Renderer-neutral presentation for runtime alerts.
Renderer-neutral presentation document section.
Renderer-neutral presentation for tool lifecycle events and results.
Semantic display document for AST tool results.
Renderer-neutral presentation value for tool lifecycle events and results.
Semantic display builder for eval tool results.
Semantic display document for file mutation tools.
Fallback semantic display document for tools without specialized renderers.
Semantic display document for LSP tool results.
Semantic display builder for read tool results.
Renderer-neutral helpers for semantic tool display documents.
Renderer-neutral presentation widget shared by TUI and web surfaces.
Thin profiling helpers callable through Vibe.Eval.
Parses lightweight prompt file attachments such as @image.png.
Saves a PNG image from the system clipboard for prompt attachment.
Compile-time prompt embedding from priv/prompts/*.md.
Remote Vibe connection facade.
Persisted trusted remote endpoints at ~/.vibe/known-nodes.json.
Long-polling SSH attachment bridge for session events.
OTP SSH daemon for constrained remote Vibe operations.
SSH host key management for the Vibe OTP SSH daemon.
Versioned JSON command protocol for the Vibe SSH transport.
Trusted remote session lifecycle commands over Erlang distribution.
Behaviour for remote Vibe transports.
Trusted remote transport backed by Erlang distribution.
SSH transport for constrained remote Vibe commands.
Ecto repo for the local SQLite database.
Declarative isolation policy for Vibe evaluation runtimes.
Run Livebook-style Elixir scripts, including Mix.install/2.
Behaviour for stateful evaluation runtimes.
Optional JavaScript/TypeScript evaluation through QuickBEAM.
Optional Python evaluation through Pythonx.
Stateful standalone BEAM runtime for Livebook-style script evaluation.
Development-only helpers for patching Vibe and continuing in the same BEAM.
Background session server for tmux-style detached operation.
Erlang distribution cookie management for the background server.
Server node metadata persistence for client discovery.
TLS certificate management for Erlang distribution.
Server-owned Vibe session process.
Slash command dispatch and autocomplete.
Slash command: /attach — switch to an existing session.
Slash command: /bg — background the current session.
Slash command: /branch — branch the session from an earlier point.
Slash command: /clear — reset session history.
Slash command: /command — run a shell command.
Slash command: /commands — list available slash commands.
Slash command: /compact — trigger context compaction.
Slash command: /effort — set reasoning effort level.
Slash command: /goal — set, view, pause, resume, or clear a long-running goal.
Slash command: /help — show built-in help topics.
UI-neutral command dispatched by TUI or LiveView clients.
Slash command: /model — switch the active model.
Slash command: /new — start a fresh session.
Slash command registry: discovery and dispatch.
Slash command: /sessions — list active sessions.
Slash command: /skill — invoke executable skills.
Slash command metadata contract.
Slash command: /web — open the web console in the default browser.
Interprets session command intents into semantic session events.
Builds model context from user-initiated eval executions.
Parses user-facing bang eval input into session command data.
Lifecycle for user-initiated Elixir eval executions.
Applies, persists, and broadcasts session events.
Session list queries combining live processes and stored records.
Lightweight session preview extraction for dashboards.
Registry-backed live session process tracker.
Prompt submission, cancellation, memory injection, and result recording.
Restores and replays persisted session events.
Durable SQLite-backed sessions for dialogs, tool events, eval state, and usage.
Session event log reads from SQLite storage.
Session listing queries against SQLite storage.
Session summary extraction for dashboards and previews.
Procedural memory for Vibe.
Trusted executable Elixir skill evaluation.
YAML frontmatter parser for skill files.
Skill discovery from priv, project, and user directories.
Behaviour and tiny DSL for executable Vibe skills.
SQLite-backed durable state: sessions, events, memory, telemetry.
SQLite FTS5 full-text search query helpers.
FTS5 virtual table DDL helpers for migrations.
Session import dispatcher for external sources.
Pi JSONL session importer.
Behaviour for session import providers.
JSON projection for storage representation values.
Protocol for values that explicitly cross the storage JSON boundary.
Ecto migration runner for the local SQLite database.
Migration: FTS5 virtual tables for session and memory search.
Migration: persisted session goals.
Migration: core storage tables for sessions, events, memory, telemetry.
Converts typed Vibe values into current storage representation structs.
Storage representation for session eval state snapshots.
Storage representation for semantic session events.
Current storage representation for Vibe.Goals.Goal.
Current storage representation for Vibe.SystemAlarms.Alert.
Current storage representation for Vibe.Tool.Event.
Storage representation and event projection for trajectory entries.
Restores current storage representation structs into typed Vibe values.
Ecto schema: persisted eval session state snapshots.
Ecto schema: persisted session goals.
Ecto schema: imported session metadata.
Ecto schema: curated long-term memory entries.
Ecto schema: FTS5 virtual table for memory search.
Ecto schema: session metadata and message counts.
Ecto schema: session events.
Ecto schema: FTS5 virtual table for session event search.
Ecto schema: subagent job records.
Ecto schema: subagent schedule definitions.
Ecto schema: local telemetry event storage.
Ecto schema: session trajectory events.
Local FTS search over Vibe sessions and curated memory.
Typed FTS search result with ranking and snippets.
Supervised subagent orchestration.
Supervised subagent job process.
Subagent job configuration builder.
Subagent job status and metadata.
Persistent subagent job storage.
Subagent lifecycle: start, cancel, list, and result retrieval.
Cron-like subagent schedule definition.
Scheduled subagent job execution.
JSONL-backed subagent schedule persistence.
DynamicSupervisor for subagent job processes.
Supervised worker process for individual subagent tasks.
Provider-neutral subscription/account usage registry.
Behaviour for provider-specific subscription/account usage backends.
OpenAI Codex subscription usage through the Codex CLI app-server RPC.
Small list assembly helpers for append-heavy render/state paths.
Bridges BEAM/SASL alarms into Vibe's local telemetry stream.
Runtime alert surfaced by Vibe system services.
:alarm_handler event adapter used by Vibe.SystemAlarms.
Declarative terminal UI helpers and constructors for Vibe's TUI node tree.
Minimal terminal app coordinator.
Vibe TUI recording entrypoint backed by TTYCast.
Builds the shared semantic render tree for chat TUI renderers.
Calculates terminal cursor coordinates for rendered TUI frames.
Renders diff-like TUI lines with semantic coloring and intra-line word diff.
Human-readable duration formatting for tool timing.
Renders the TUI prompt editor section.
Composes full TUI render frames from semantic snapshots.
Routes semantic TUI input actions into editor and session commands.
Maps Ghostty keyboard events and fallback terminal bytes to Vibe editor actions.
Declarative TUI node data.
Renderer-level partial rendering for semantic TUI view models.
Converts semantic picker state into TUI picker nodes.
Terminal projection for tool presentations.
Renders structured tool display body blocks for TUI tool cards.
Renders the shared card shell and title for TUI tool output.
Context passed to TUI renderable protocol implementations.
Rendered TUI frame with cursor position and renderer cache state.
Helpers for building stable TUI component render cache keys.
Renderer-owned cache for TUI component line output.
Semantic TUI render tree with stable component identities.
A semantic render tree node.
Protocol for rendering semantic UI values into TUI lines with stable cache keys.
Terminal renderer for Vibe's semantic UI view model.
Startable terminal runtime for Vibe's interactive TUI.
Supervisor for TUI runtime child processes.
Keybinding-to-action mapping for the TUI.
Renders source-like TUI lines with block-level syntax highlighting.
Small storybook for TUI widgets and views.
Terminal syntax highlighting via Lumis.
Terminal adapter for Vibe.TUI.App.
Pure terminal-diff state machine for Vibe's TUI runtime.
Line truncation with omission hints for tool output.
Compile-time-gated TUI frame trace recording.
Formats generic values for TUI tool output.
Shared viewport math for TUI widgets.
TUI agent dashboard view — shows all sessions with status, preview, and dispatch.
Default declarative chat TUI view.
Behaviour, renderer dispatch, and shared helpers for declarative TUI widgets.
TUI widget: autocomplete dropdown overlay.
TUI widget: bordered box container.
TUI widget: yes/no confirmation dialog.
TUI widget: modal dialog with message and actions.
TUI widget: colored unified diff display.
TUI widget: status bar with model, usage, and session info.
TUI widget: titled frame with optional border.
TUI widget: horizontal layout container.
TUI widget for inline terminal images with text fallback.
TUI widget: single-line text input.
Shared framed list panel used by TUI pickers and autocomplete.
TUI widget: animated working/thinking indicator.
TUI widget: rendered Markdown content block.
TUI widget: chat message bubble with role styling.
TUI widget: model and effort status display.
TUI widget: transient notification stack.
TUI widget: floating overlay panel.
TUI widget: padding wrapper.
TUI widget: plugin-owned semantic content.
TUI widget: pre-rendered iodata passthrough.
TUI widget: labeled collapsible section.
TUI widget: navigable selection list.
TUI widget: vertical space.
TUI widget: colored status indicator.
TUI widget: styled text block.
TUI widget: multiline text editor display.
TUI widget: tool call card with summary and output.
TUI widget: content truncation with expand hint.
TUI widget: vertical layout container.
Local telemetry recorder and introspection API for Vibe.
Supervised terminal pane helpers.
Terminal image protocol helpers for TUI renderers.
Terminal text layout helpers.
Line list manipulation helpers for TUI rendering.
Terminal renderer for Markdown, including MDEx streaming documents.
Mermaid diagram detection and fallback rendering.
Supervised Ghostty terminal + optional PTY pane.
Terminal-aware snapshots for ANSI/VT output.
ANSI escape and control character sanitizer for display.
Semantic ANSI theme for Vibe's terminal UI.
Width helpers for ANSI-styled terminal lines.
Tool result struct for Jido action outputs.
Model-facing AST search and replace tool.
Model-facing file edit tool.
Model-facing Elixir eval tool.
Model-facing LSP interaction tool.
Model-facing file and image read tool.
Model-facing file write tool.
Structured session event payload for tool lifecycle updates.
Context-safe limits for model-facing tool output.
Reusable line/byte windows for large model-facing tool output.
Tool-call payload passed to plugin tool_call callbacks.
Applies plugin tool-call and tool-result hooks around model-facing tools.
Tool-result payload passed to plugin tool_result callbacks.
Shared tool result formatting.
JSON projection for model-facing tool transport payloads.
Protocol for values that cross the model-facing tool JSON boundary.
Model-facing transport projection for read tool results.
Model-facing transport projection for generic tool results.
Structured session event capture for self-improvement.
JSON projection for external transport payloads.
Protocol for values that cross external transport JSON boundaries.
Autocomplete state model shared by TUI and future LiveView adapters.
Single autocomplete suggestion with value, label, and optional detail.
Semantic UI blocks shared by TUI and future LiveView renderers.
Assistant response block with text, error, or streaming loader.
User-initiated Elixir eval block.
Footer state: model, effort, usage, session, and plugin statuses.
Transient notification stack.
Modal overlay state for selectors and dialogs.
Plugin-owned semantic widget rendered in the session UI.
Subagent job lifecycle event block.
Session history marker for local UI state changes.
Tool invocation block with args, status, and output.
Semantic content block types for UI state messages.
Pure multiline editor model shared by terminal and future LiveView adapters.
:gen_statem wrapper around Vibe.UI.Editor.
Semantic error payload shared by TUI, Web, previews, and persisted session events.
File path autocomplete for prompt attachments and path-like input.
Semantic chat message in UI state.
Transient notification state for TUI and web UI.
Bridges plugin events into the session UI state loop.
Task-based prompt execution for interactive sessions.
Pure reducer for Vibe's UI-neutral event stream.
Selector-specific reducer operations.
Modal selector state for model/effort/session pickers.
UI-neutral session state shared by terminal and LiveView renderers.
Converts Vibe.UI.State into semantic blocks for renderers.
Phoenix endpoint, router, and asset configuration for the web console.
Serves local session artifact files to the web UI.
Web static asset paths for the Vibe endpoint.
Token-based authentication for the web console.
Imports shared component modules for Vibe Web.
Components for rendering plugin and skill eval API details.
Markdown, source, diff, and text rendering helpers for Vibe Web components.
Small reusable UI primitives for Vibe Web.
Conversation message components for Vibe Web.
Application shell and navigation components for Vibe Web.
LiveView browser for built-in Vibe documentation.
Phoenix endpoint configuration for the web console.
Error page renderer for the web console.
LiveView dashboard for external gateway runtimes and sessions.
LiveView page for supervised subagent jobs.
Phoenix layout components for the web console.
LiveView page for durable Vibe memory.
Components for rendering plugin-owned presentation documents.
LiveView for Vibe plugin runtime capabilities.
Web surface projection for tool presentations.
Phoenix router: LiveView routes and artifact serving.
LiveView runtime dashboard for Vibe's BEAM process.
Compatibility route for the former /search page.
Session activity helpers for web surfaces.
Components specific to the session workbench.
Builds displayable session messages from UI state and final stream events.
LiveView workbench for one Vibe agent session.
Components specific to the sessions index page.
Filtering, grouping, and pagination helpers for the sessions page.
LiveView landing page for Vibe session history and active runtime status.
LiveView for Vibe model, auth, and local configuration status.
LiveView for installed Markdown and executable Vibe skills.
LiveView for SQLite-backed storage search and maintenance status.
Workspace path helpers for file operations.
Mix Tasks
Launches Vibe.
Builds and installs the local vibe escript.
Renders Vibe's TUI storybook.