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

Projects and home chats

A project is a folder you registered. Vixl does not invent a project from the current working directory. The fleet lives in personal ~/.vixl as projects.json and active-project.json. Paths are on .vixl layout.

Slugs are lowercase alphanumeric plus hyphens, unique in the fleet, and never _home_ (reserved for home chats). Duplicate folder names get -2, -3, and so on. Adding a folder that is already registered makes it active instead of inserting a second row.

Add and remove

Add a project from the sidebar. A native folder picker runs. Cancel is silent. A new folder appears in the sidebar. A folder that is already registered becomes active.

Adding a folder does not create <repo>/.vixl. That directory appears when something first writes config (MCP, settings, a skill, and so on).

Remove from sidebar drops the fleet row. If it was active, nothing is selected. The repo .vixl, chats, and graph indexes stay. Graphs can be deleted later in Settings.

If the registered folder is your user home directory, that project is personal only. Project-scope settings and MCP reads are empty, project-scope writes are refused, project file lists are empty, and the root is not treated as having project config. Skills, agents, rules, and AGENTS.md come from ~/.vixl only.

Home chats vs project chats

The home composer can send into a registered project or with Home. A project send creates a project chat. Home creates a home chat.

Home chats use slug _home_ and your user home directory as the workspace. They inject personal MCP, vendored command skills, and personal skills, agents, rules, and AGENTS.md from ~/.vixl. File @ search has no workspace on a home chat.

Project chats use that folder as the workspace. They merge personal and project config (project wins on collision for most keys). Skills and agents overlay by name, and the project file wins. Rules and AGENTS.md are included from both trees, personal first, then project. See The .vixl directory for the merge, and Context for what actually lands in the prompt.

The sidebar lists collapsible project rows plus a Home folder when home chats exist. New Agent goes to / and does not pick a project for you. The home picker does.

Project groups

A project group is a named set of two or more registered projects. The group lives in personal ~/.vixl/project-groups.json. It does not replace the member projects. Each member keeps its own folder, .vixl tree, and git repo.

Chats on a group bind to the group slug, not to one member. Routes look like /group/<slug> and /group/<slug>/chat/<id>. Chat files live under chats/<groupSlug>/<chatId>/. The workspace for that thread spans every member root.

The primary member is the first project in the group's member list. New group chats use that folder as the default workspace root for tools that need one (git repo, run_terminal cwd, and similar). File and search tools still see every member.

Agent paths must use a member slug prefix when more than one root is in play, for example api/src/index.ts. Unprefixed relative paths are rejected and the error lists the valid slugs. One git commit stays inside one repo. Never stage files across projects.

Create a project group from the home composer. Adding the same member set again reopens that group instead of inserting a second row. Group slugs share the uniqueness pool with project slugs and never use _home_.

Project page

Open a project from the sidebar to its page. Tabs, in order: Chats, MCP, Graph, Plans, Skills, Agents, Rules. These reuse the Settings section components with project scope. Personal copies of the same surfaces live under Settings.

Activating a project prefetches default language servers and starts the code graph. Starting a new Agent-mode chat from the project row needs a Default or Agent model in Settings.

Use the workbench for the editor, terminals, and plan tabs. Manage chats covers pin, fork, rename, and delete.

Edit this page
Last Updated: 10/16/26, 8:17 PM
Prev
Permissions and approvals
Next
Models and roles