VixlVixl
Docs
Changelog
GitHub
Docs
Changelog
GitHub
  • Get Started

    • Overview
    • Philosophy
    • Installation
    • Set up providers and models
    • Add a project
    • Create a project group
    • Your first chat
  • Concepts

    • How Vixl works
    • Chat modes
    • Permissions and approvals
    • Projects and home chats
    • Models and roles
    • Context
    • Code graphs
    • The .vixl directory
  • Using Vixl

    • Manage chats
    • Queue and stop messages
    • Review and restore changes
    • Compact and hand off long chats
    • Export a transcript
    • Work with plans
    • Orchestrate sub-agents
    • Best practices
    • Use the workbench
    • Shortcuts and the command palette
  • Customize

    • Providers
    • Models
    • MCP servers
    • Skills
    • Custom agents
    • Rules and AGENTS.md
    • Language servers
    • Appearance
    • Permission settings
  • Reference

    • settings.json
    • mcp.json
    • Custom agent frontmatter
    • SKILL.md format
    • Keyboard shortcuts
    • Chat statuses
    • .vixl layout
    • Managed components
  • Resources

    • Troubleshooting
    • FAQ
    • Privacy
    • Comparison
    • Roadmap
    • Brand and press
    • Changelog

Privacy

Vixl is local-first. There is no Vixl account, no Vixl home server, and no analytics in the app. The only telemetry-related string in the codebase is CODEGRAPH_TELEMETRY=0, which disables the @colbymchenry/codegraph package's own telemetry.

Network

Vixl talks to the network for the things you configure, plus a few managed downloads the desktop app needs to run:

  • Model providers you add (catalog hosts, custom OpenAI-compatible endpoints, Ollama, LM Studio). Requests go from the local app to that host. Keys are not sent to Vixl.
  • MCP servers you add (stdio children, HTTP, SSE), including browser OAuth when you log a server in.
  • Agent web_fetch when you allow a tool call that fetches a URL.
  • App updates from GitHub Releases: https://github.com/vixl-ai/vixl/releases/latest/download/latest.json.
  • Language servers, when lsp.autoDownload is on (the default) or you install one: npm packages, GitHub Release assets, HTTP archives, and go install. See Language servers.
  • A portable Node.js runtime from https://nodejs.org/dist/ if no system node is on PATH (used for npx and npm-based language servers).
  • CodeGraph via npx -y @colbymchenry/codegraph (the npm registry). Vixl also sets CODEGRAPH_NO_UPDATE_CHECK=1 so that package does not check for its own updates.
  • The public model catalog at https://models.dev/api.json (no keys).

The updater is the Tauri updater plugin. It is skipped in dev and outside Tauri. A silent check runs on app mount. Manual check is Settings > General.

Secrets

API keys and MCP secrets are stored in the OS keychain. They are never written to settings.json or mcp.json. Linux without Secret Service falls back to a local vault file. Details are on Providers.

What is stored locally

Personal config is ~/.vixl. Project config is <repo>/.vixl. Chats, messages, and related rows live in vixl.sqlite under the personal directory. Each chat also has a directory at .vixl/chats/<projectSlug>/<chatId>/. Code graph indexes live under personal .vixl/graphs/. Paths are listed on .vixl layout.

Delete means delete

Deleting a chat removes it from the client: the SQLite row (messages and related rows cascade) and the chat directory. There is no archive, no Vixl memory, and no user profiling.

If you used a cloud provider, that provider's data policies are the provider's business. Delete covers Vixl only.

Removing a project from the sidebar drops the fleet registry row. It does not delete <repo>/.vixl, chats, or graph indexes. Graph stores can be deleted from Settings > Graphs.

See Manage chats for how to delete a chat.

Edit this page
Last Updated: 10/6/26, 8:58 PM
Prev
FAQ
Next
Comparison