Skip to content
velle edited this page Jul 17, 2026 · 1 revision

Vibe

A local AI coding assistant — an agentic tool-calling loop, running on the model already resident in synapd.

Vibe is a terminal REPL that reads, writes and edits files, runs shell commands, and greps/globs your tree to get a coding task done — the Claude-Code shape, but driven entirely by the local model. On SynapseOS its default backend is synapd, so it reuses the model already loaded on the GPU: no second model, no extra VRAM, no API key.

Upstream: velle999/vibe. Packaged for SynapseOS as vibe.

Running it

vibe            # in whatever directory you want it to work in

The launcher defaults VIBE_BACKEND=synapd. Swap backends without editing config:

VIBE_BACKEND=ollama vibe            # or llama_cpp
VIBE_SYNAPD_HOST=10.0.0.153 vibe    # reach synapd's TCP bridge on another host

It's pure Python — deps (python-rich, python-prompt_toolkit) come from the Arch repos, so there's no venv. The app lives at /usr/lib/vibe/app and the launcher is /usr/bin/vibe.

The confirmation gate

Destructive tools — bash, write_file, edit_file — pause for a y / n / always prompt before they run; read-only tools (read_file, glob, grep, list_dir) never do. An agentic loop driven by a local model should not silently overwrite files or run shell commands, so the gate is on by default. Disable it with the --yolo flag or the /trust command in-session.

How it talks to synapd

synapd is a single-shot request/response daemon with no structured tool-calling. So Vibe drives its text tool path: the tools are described in the prompt, the model emits <tool_call>{…}</tool_call> blocks, and Vibe parses, executes, and feeds the result back — looping until the task is done. The backend sends a SYN_QF_RAW query (see synapd) so it owns the whole chat template and isn't capped at synapd's short default answer length.

Expectations

The stock model is a 7B — fine for small edits, file/system questions, and scaffolding, but mediocre at agentic tool-calling: it will occasionally skip a tool or hallucinate. Swap in a stronger GGUF (drop it in as /var/lib/synapd/models/synapse.gguf and restart synapd) for better results, or point Vibe at a larger backend over the bridge.

See also: synapd (the backend + wire protocol) and Chibi (the voice-companion sibling on the same model).

Clone this wiki locally