
Vibe coding in the CLI is fast until the agent forgets what you agreed on yesterday, rereads the entire repository with grep and clicks the cookie banner instead of the Save button. Four open-source tools — agent-browser, OpenSpec, codebase-memory-mcp and ai-memory — fill exactly those gaps: the browser, agreement before code, the repo map and memory across sessions and agents.
What a skill is, in practice
In Grok, Claude Code, Codex and other terminal agents, a skill is a SKILL.md with instructions on when to use it, plus a CLI or an MCP server. The model does not “know” your project: it reads the file, calls the tool and returns the result. Without a skill, vibe coding becomes chat. With a skill, it becomes a procedure.
The four below complement each other. None replaces another. Together, the agent plans, finds the right code, remembers the previous session and checks the interface like a user. This blog’s broader map of terminal assistants: AI assistants on the Linux terminal. Local AI: Ollama.
OpenSpec: agree before generating code
OpenSpec (Fission-AI, MIT, v1.12.0 in September 2026) is spec-driven development for agents. The philosophy fits on a card: fluid, iterative, built for brownfield. Each change gets a folder openspec/changes/<nome>/ with proposal.md, specs/, design.md and tasks.md — plain Markdown, WHEN/THEN scenarios, no DSL.
The new workflow is /opsx::
/opsx:explore— think with the agent, without committing to an artifact/opsx:propose add-dark-mode— create the change/opsx:apply— implement the checklist/opsx:archive— archive and update living specs
Installation (Node.js 20.19+):
npm install -g @fission-ai/openspec@latest
cd seu-projeto
openspec init
openspec update # depois de um upgrade, regenera as instruções do agente
What changes at work: the agent stops “guessing the scope” in the middle of the diff. You review the plan before the code. On a team, the same openspec/ goes into git; the Stores beta allows a specs-only repo shared across multiple codebases. Anonymous telemetry (command name and version) is disabled with OPENSPEC_TELEMETRY=0.
This very site uses OpenSpec for blog changes. Without the change folder, the agent would rewrite old posts, alter slugs and break indexed URLs. With the spec, the rule stays in the repo, not in chat.
agent-browser: the agent actually clicks

agent-browser is a browser automation CLI from Vercel Labs, a native binary in Rust, Apache-2.0, v0.36.0 (1º September 2026). It is not Playwright in Node: the daemon speaks CDP with Chrome for Testing. The trick for the model is snapshot — an accessibility tree with refs @e2, @e3. The agent clicks the ref, not the selector that broke last sprint.
npm install -g agent-browser
agent-browser install --with-deps # Linux: Chrome + libs do sistema
agent-browser open https://www.linuxpro.com.br
agent-browser snapshot -i # só elementos interativos
agent-browser click @e2
agent-browser screenshot /tmp/home.png
agent-browser close
In vibe coding this closes the loop: the agent starts the app, opens the page, fills out the form, takes a screenshot and compares. screenshot --annotate numbers the buttons; the same number works for clicking. It has MCP (agent-browser mcp), isolated sessions, an encrypted password vault (the LLM does not see the password), a domain allowlist and, on Linux, doctor to diagnose zombie daemons.
Do not use this against third-party sites without permission. For your localhost, staging and theme smoke test, it is the Selenium the agent finally understands.
codebase-memory-mcp: the repo map, not grep
codebase-memory-mcp (DeusData, MIT) indexes code into a persistent graph — functions, classes, HTTP routes, who calls whom. Tree-sitter in 162 languages, hybrid LSP in a handful of them, 15 MCP tools, a single binary, zero API keys. Code does not leave the machine. The preprint is on arXiv 2603.27277.
The number that matters in vibe coding: five structural queries ~3.400 tokens versus ~412.000 in the back-and-forth of grep/read (99%). Linux kernel (28M LOC) indexes in about 3 minutes on the M3; an average repo, in milliseconds. 3D UI at http://localhost:9749.
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash
# reinicie o agente; peça "index this project"
The installer detects Claude Code, Codex, Grok, Cursor, Gemini CLI and dozens of others. Three agent tiers (Scout, Verify, Auditor) prevent the model from claiming “there is no caller” without looking at the graph. For everyday use: “what calls ProcessOrder?”, “what is the impact of this diff?”, “where is the dead code?”. Without this, vibe coding hallucinates a helper that already exists three folders away.
ai-memory: the next session starts at the right point

ai-memory, created by Fábio Akita and distributed under MIT, is long-term memory for coding agents. It connects Claude Code, Codex, OpenCode, Cursor, Gemini CLI, Grok and other clients to the same knowledge base: you can stop an agent mid-task and continue with another on the same project without reexplaining the architecture, failed attempts and pending work.
The design is simple and auditable: lifecycle hooks capture sanitized observations; at the end of the session they can become Markdown pages in a wiki; search, briefing and handoff retrieve context in the next session. The wiki is the source of truth and the index is derived from it. Capture, text search and handoffs work without an API key or mandatory LLM calls; a provider is optional for summaries and semantic search.
To install the local service and configure privacy, MCP and hooks on Linux, follow the complete guide: ai-memory: install persistent memory for agents on Linux. After initializing the service, integrating a client is brief:
# OpenAI Codex
ai-memory install-mcp --client codex --apply
ai-memory install-hooks --agent codex --apply
# reinicie o cliente e continue a tarefa normalmente
In everyday use, hooks handle capture; to resume, just ask “where did we leave off?” or search for a project decision. Handoff is explicit: one session leaves the baton and the next picks it up exactly once. On teams or across multiple machines, the same instance can share knowledge by project while keeping personal handoffs separate.
Do not confuse it with codebase-memory: that answers questions about structures and relationships in source code; ai-memory preserves the context of work — decisions, tools used, attempts and next steps. Together they prevent both endless grep and endless reexplanation.
How to fit all four into the workflow
A typical feature cycle on Linux:
- OpenSpec —
/opsx:exploreand/opsx:propose. You read theproposal.mdand only then ask for implementation. - codebase-memory — the agent asks the graph who touches the route, instead of opening 40 files.
- ai-memory — the next session already knows the change is in
openspec/changes/…, what broke in yesterday’s test and who left the handoff. - agent-browser — start the app,
open,snapshot, click, take screenshots, compare desktop and mobile.
Install according to what hurts today. If the agent loses decisions across sessions or clients, start with ai-memory. If it invents an API that already exists, use codebase-memory. If the PR passes unit tests but breaks the button in Chrome, use agent-browser. If scope expands mid-chat, use OpenSpec.
Ground-level requirements: Node 20.19+ (OpenSpec), Chrome for Testing (agent-browser), C binary (codebase-memory). Everything runs on Linux amd64/arm64. The terminal agent — Grok, Claude Code, Codex, Gemini CLI — is the orchestrator; skills are the hands.
Wrap-up
Vibe coding without a spec is improvisation. Without a graph it is expensive grep. Without memory it is amnesia. Without a browser it is “works in my headless”. The four skills do not make the model smarter; they make the work verifiable. Git remains the source of truth — the history: The history of Git.
Repositories: OpenSpec · agent-browser · codebase-memory-mcp · ai-memory. To get memory running on Linux, see the ai-memory installation and configuration guide.