# Vibe

> BEAM-native coding agent for Elixir/OTP projects with a TUI, LiveView web console, persistent sessions, subagents, plugins, and project-aware Elixir eval.

Vibe is a BEAM-native coding agent built specifically for Elixir/OTP projects, distributed under the MIT License and available on GitHub. It runs as a local OTP application and exposes a terminal UI (TUI), a Phoenix LiveView web console, persistent sessions, plugins, skills, subagents, and project-aware Elixir eval. The project self-describes as experimental and not production-ready, warning users to review changes before applying them.

## What It Is

Vibe is a CLI/web coding agent that treats the BEAM runtime as its control plane rather than wrapping a chat loop around shell commands. Instead of issuing raw shell commands, the agent uses stateful Elixir APIs for commands, storage, search, telemetry, goals, web fetches, and Markdown rendering. It installs as a Mix escript from Hex and requires Elixir 1.19+ and Erlang/OTP 27+.

## BEAM-Native Architecture

The core design principle is that agent work runs as supervised OTP processes. Sessions, command jobs, plugin workers, subagents, telemetry, UI state, and storage are all supervised processes that can be monitored, cancelled, resumed, and inspected. This gives Vibe properties closer to a Livebook notebook than a traditional shell-based agent:

- **Elixir eval as the control plane** — the agent uses stateful Elixir APIs; the model sees a small tool surface but the agent gets a composable interface.
- **Stateful eval sessions** — intermediate values persist across steps, so the agent can compute, inspect, transform, and refer back to results.
- **Subagents as OTP processes** — child Vibe sessions get their own lifecycle, enabling parallel research, background work, and longer workflows.
- **Remote workflows** — Vibe supports SSH and Erlang distribution so agents can attach to remote nodes and coordinate across machines.

## Workflow and Interface

Normal `vibe` invocations act as clients connecting to a singleton background server, giving a tmux-like multi-terminal workflow. The Phoenix LiveView web console shares the same session processes as the TUI. Key commands include:

- `vibe` — start or attach the TUI
- `vibe --web` — open the LiveView console
- `vibe -p "prompt"` — run a single prompt and exit
- `vibe --bg "prompt"` — start a background session
- `vibe subagents jobs` — list running subagent jobs
- `vibe connect [--ssh|--dist] <target>` — save a remote Vibe node

Files can be attached with `@file` arguments; image files are supported for direct prompts and inline TUI/web references.

## Plugins, Skills, and Providers

Built-in plugins include Rules (loads Markdown rule files into the system prompt), Safety (confirmation before risky commands), Notify (terminal notifications), Question (model-facing question tool), and WebSearch (provider-neutral web search). Plugins can be disabled per profile in `~/.vibe/agent-profiles.toml`. Executable skills are trusted local Elixir files discovered from several standard paths. Vibe passes `provider:model` strings through ReqLLM and supports Anthropic, OpenAI/Codex (with OAuth), and other providers via environment variable API keys.

## Update: v0.2.4

The latest release is v0.2.4, published on 2026-05-26, with the repository last pushed the same day. The project was created in April 2026 and has been actively updated since. HexDocs package documentation is published at hexdocs.pm/vibe. The project is explicitly marked experimental and not production-ready in its own README.

## Features
- BEAM-native OTP coding agent
- Terminal UI (TUI)
- Phoenix LiveView web console
- Persistent sessions with SQLite storage
- Subagents with independent OTP lifecycles
- Project-aware Elixir eval as control plane
- Stateful eval sessions (Livebook-style)
- Plugin system (Rules, Safety, Notify, Question, WebSearch)
- Executable skills (trusted local Elixir files)
- SSH and Erlang distribution for remote workflows
- Multi-provider model support via ReqLLM
- Codex/OpenAI OAuth login
- Full-text search over sessions and memory
- Background sessions and non-interactive prompt mode
- AST-aware search/replace for Elixir syntax
- LSP integration for diagnostics and navigation
- Hot-reload modules during development
- Semantic events and typed storage with Ecto

## Integrations
OpenAI/Codex, Anthropic Claude, Phoenix LiveView, Ecto, SQLite, ReqLLM, Hex package manager, HexDocs, Credo, Dialyzer, ExDNA, Reach

## Platforms
WEB, API, CLI

## Pricing
Open Source

## Version
v0.2.4

## Links
- Website: https://hexdocs.pm/vibe
- Documentation: https://hexdocs.pm/vibe/
- Repository: https://github.com/elixir-vibe/vibe
- EveryDev.ai: https://www.everydev.ai/tools/vibe-elixir
