About Veo
A local-first macOS workspace for the Codex CLI. One Mac app, one direct local transport, and nothing hosted in between.
What Veo is
- A native SwiftUI Mac app that runs your locally installed Codex CLI.
- A project-aware chat catalog with per-chat working directories.
- A timeline for reasoning, commands, diffs, tool calls, and approvals.
- A docked interactive terminal in the current project.
- Open source under the Apache License 2.0.
What Veo isn't
- No hosted backend, relay, or product API.
- No subscription, purchase gate, or account of its own.
- No phone companion or pairing flow.
- No analytics service, and no bundled credentials.
- Not an official OpenAI product.
How a turn actually runs.
Veo owns one local Codex runtime per app process. It launches codex app-server and correlates JSON-RPC responses by request ID. The app-server's stdout stays protocol-only — newline-delimited JSON-RPC — while diagnostics stay on stderr and never enter protocol parsing.
Veo.xcodeproj/ Xcode project and the shared Veo scheme BuildSupport/ Bundle metadata Veo/ App/ SwiftUI entry point and scenes Models/ Protocol, preference, and navigation models Services/ App-server transport, PTY, Git, utilities Stores/ Thread, runtime, timeline coordination Views/ Workspace, composer, terminal, review, settings script/build_and_run.sh Build, launch, logging, verification helper Legal/ Privacy notice and terms
Thread identity and project identity stay separate, which is why switching chats can switch your local context without hiding the rest of the workspace.
Where your things live.
| What | Where |
|---|---|
| Interface preferences | macOS preferences — selected project and chat, access mode, appearance, terminal options, model choices |
| Veo chats & timeline | SQLite under Application Support, in com.ash.Veo/Threads |
| Codex credentials & history | Owned by the locally installed CLI. Veo never displays or retains your authentication secrets |
| Projectless scratch files | An app-managed workspace, kept until the chat is permanently deleted |
Veo does not operate an analytics service or a product backend. The Codex subprocess may contact OpenAI or another configured provider, tools may reach external services, and interface features such as site icons may fetch public resources — each following the feature you use and the permissions you granted.
Details in the Privacy Notice and Terms of Use.
FAQ
Does Veo include Codex?
No. Veo runs the Codex CLI you install and authenticate yourself. It discovers the binary from an explicit CODEX_EXECUTABLE, the GUI process PATH, and standard Homebrew and local install locations.
Does Veo cost anything?
No. Veo is free and open source, with no subscription or purchase gate. Whatever your Codex account and model provider charge is between you and them.
Can I use my existing Codex CLI history?
Yes. Veo owns its own chat catalog, but existing Codex CLI history can appear in a separate sidebar section when you enable it in Settings. It's off by default. With sidebar organization set to project, those threads group under project headers just like Veo's own.
What does Veo let the model touch?
Read only, Workspace, or Full access — chosen explicitly, and never silently broadened. Approvals and permission prompts are answered inline in the timeline, and agent CLI commands in the docked terminal are gated separately from ordinary shell commands.
Is there an iPhone or web version?
No, and there won't be. Veo is deliberately one Mac app with one direct local transport — no mobile companion, relay, or pairing flow.
Which Macs are supported?
macOS 14 or later, on Apple silicon or Intel. Releases ship as a universal binary.
Patches welcome.
Read CONTRIBUTING.md first. Keep changes Mac-native, local-first, and centered on the direct local Codex transport. Shared logic belongs in services and coordinators, not duplicated across views.
Apache 2.0.
Use it, fork it, ship your own build. Veo is an independent project and is not affiliated with or endorsed by OpenAI.