Skip to content

Vox FAQ: Frequently Asked Questions

This page answers product and architecture questions.

For operational fixes, environment issues, or command failures, use the Troubleshooting FAQ.

Vox is a full-stack programming language and toolchain that aims to keep more of the application structure in one place. The current repository documents a compiler and CLI that generate Rust and TypeScript artifacts, plus a wider ecosystem of orchestration, MCP, and Mens-related tooling.

Yes. Vox uses bidirectional type inference: you rarely need explicit types inside function bodies, but all signatures are validated at compile time.

Null is completely banned. Absent values use Option[T] (Some(value) or None); fallible operations use Result[T, E] (Ok(value) or Error(e)). Both must be explicitly handled — the compiler rejects unhandled cases. See Type System Reference for details.

Build from source with cargo install --locked --path crates/vox-cli.

To discover what your installed binary actually supports, run vox commands --recommended and vox commands --format json --include-nested. The docs intentionally distinguish between the current compiled CLI surface and broader workspace capabilities.

vox build lexes, parses, and type-checks your .vox file, then generates Rust and TypeScript output.
Why use it: it gives you a deterministic compile artifact you can inspect before running or bundling.

Yes. Use import rust:<crate> (for example import rust:serde_json as json) for Rust crates and standard NPM imports in frontend blocks.

  • Actor — a stateful unit of concurrency with a private mailbox. Processes one message at a time; no shared-state races.
  • Workflow — a long-running orchestration construct. Today, the interpreted workflow runtime provides the repo’s durable step-replay path, while generated Rust workflows are not yet full durable state machines (see ADR-021).

In current repo language, Mens refers to the model-training lane and local model generation pipeline, while Populi / mesh refers to coordination, inference serving, and distributed execution surfaces. Older docs sometimes used the terms loosely; newer docs keep those lanes separate.

What is the difference between activity and workflow?

Section titled “What is the difference between activity and workflow?”

A workflow is an overarching orchestrator that tracks progress durably across steps, whereas an activity is an individual, retryable unit of work that performs side effects (like an API call). Workflows run activities but are not meant to contain side effects directly.

@island was retired on 2026-05-03. Vox now compiles component declarations to plain React/TSX and @endpoint declarations to a generated vox-client.ts; an external React app imports the components or calls the endpoints over RPC. See external-frontend-interop-plan-2026. Sources containing @island will be a hard parser error.

What is Codex and how does it relate to SQLite?

Section titled “What is Codex and how does it relate to SQLite?”

Codex is the logical data environment — the unified data and knowledge store in Vox that application code interacts with. It acts as a high-level facade over Arca, which handles the actual physical storage (SQLite/Turso layer under the hood).

How is Vox different from Go or Erlang/Elixir?

Section titled “How is Vox different from Go or Erlang/Elixir?”

Vox is opinionated about generated outputs, durable workflows, and keeping more application structure in one language. Its design language overlaps with actor and workflow systems, but the repo also includes code generation, contracts, and web-facing lanes that are not trying to be a drop-in clone of Go or Erlang/Elixir.

The repo has native Model Context Protocol (MCP) integration and a growing set of tool-registry contracts. In the current documentation set, the canonical sources are the MCP registry contract pages and the vox-mcp workspace surfaces, not older duplicate reference tables.

What is Mens, and how do I fine-tune a model?

Section titled “What is Mens, and how do I fine-tune a model?”

Mens is the repo’s native model-training lane. The current default production mix is still code-oriented; documentation prose extraction exists, but architecture Q&A is not the default training objective today.

For the canonical training entrypoint:

Terminal window
vox mens train --backend qlora

See Mens native training SSOT, Mens training data contract, and How To: Train Mens Models.

An orchestration-layer reasoning protocol (SOP). Before generating or approving code, Vox uses structural prompts to force the underlying LLM to evaluate confidence and structure its reasoning via the MCP control plane.

Deployment surfaces exist, but they are not all equivalent in maturity. Treat the deployment and portability docs as the current source of truth for the lane you are using rather than assuming every repo path is equally production-ready.

Yes, Apache-2.0 licensed. Start with the Contributor hub, follow STYLE.md, and use the relevant vox ci guards for the area you changed.