VibeAI Docs
Operate

Projects

Document folders agents research — retrieval, model policy, time machine, subdomains.

A project is a folder of documents (/root/.aios/projects/<name>) that agents consult when solving problems. Projects are shared across all agents on the box.

Create and fill

Projects page with a demo project

Vibe Code panel → ⛁ Projects tab: create, upload files, see contents. Or just drop files into the folder — retrieval sees edits immediately.

Using a project

  • Panel: pick the project in the toolbar selector; every agent-tab message now carries it.
  • CLI: aios -p "question" --project <name>.

The harness retrieves the most relevant excerpts (embedding-ranked, packed under a context budget, cited by filename) and injects them into the turn. The agent answers from your documents and names its sources.

Per-project model policy

.project.yaml inside the project (editable via ⛁ Projects → ⚙ Policy):

models:
  start: claude-haiku-4-5    # routine turns
  hard: claude-opus-4-8      # frontier/escalated turns
  review: claude-opus-4-8    # peer-review passes

Routing still decides which tier a turn needs; the project decides which model serves that tier. Review passes: aios -p ... --project X --role review.

Multi-agent transparency

Every project keeps a journal (.journal.jsonl) of each agent’s requests and responses. Recent activity is injected into every project turn, so agents working the same project stay consistent with each other.

Time machine

Every project is an auto-managed local git repo: snapshots on create, upload, delete, and config changes. ⏱ History shows snapshots; restore travels to any point — recorded as a new snapshot, so you can travel forward again and nothing is ever lost.

Vector index

Retrieval uses a persistent embedded index (refreshed incrementally on file changes). Optionally back a project with a Chroma server:

vector:
  backend: chroma
  chroma_url: http://127.0.0.1:8800
Tip

If Chroma is ever down, retrieval falls back to the embedded index — a project never breaks because its vector DB did.

Publish to a subdomain

⛁ Projects → assign a subdomain: the project folder is served at <sub>.<apex> (static hosting, dotfiles blocked, wildcard cert). Reserved names are refused and nginx is config-tested before reload.