Skip to content

Run multiple agents in the
same Git repository.

Tessera works on top of your existing Git repository so concurrent AI agents and terminal sessions can share one checkout, work on independent branches, and merge edits at the AST level without manual worktrees, lockfile collisions, or overwritten files.

TScurrency.ts×
TSindex.ts
src›currency.ts
2 agents concurrently editing this file (main): antigravity-a1b2 · claude-c3d4
1
export function formatCurrency(
2
cents: number,
antigravity-a1b2 · L3-L6: Add locale and decimals
3
currency = "USD",antigravity-a1b2: Add locale and decimals
4
locale = "en-US",
5
decimals = 2
6
): string {
7
const amount = (cents / 100).toFixed(decimals);
8
return `[${locale}] ${currency} ${amount}`;
9
}
claude-c3d4 · L10-L14: Add formatCompact helper
10
export function formatCompact(cents: number) {claude-c3d4: Add formatCompact helper
11
return new Intl.NumberFormat("en-US", {
12
style: "currency", currency: "USD", notation: "compact"
13
}).format(cents / 100);
14
}
main Graph
Ln 4, Col 28Spaces: 2UTF-8TypeScript

Why Tessera? ​

In standard Git, every open terminal and AI agent shares a single .git/HEAD and working directory. Running two agents at once overwrites files or forces you to maintain separate git worktree folders. Tessera does not replace Git. It coordinates sessions inside .git/tessera and writes standard Git commits so you stay in one folder while each session owns its own branch, dev server, and AST-merged changes. Read Why Tessera? →

Parallel Agents in One Repository
Prompt in One Repo
Agent 1: "Add Pricing"
Agent 2: "Add FAQ"
~/acme-web (main)Hero Banner
1 Folder (~/acme-web)
Own Branches
Same ~/acme-web folder
mainfeat/pricingAgent 1 · +Pricingfeat/faqAgent 2 · +FAQ
✓ Isolated in Place
Branch Dev Servers
localhost:4100 (feat/pricing)Basic $0Pro $29Team $99localhost:4200 (feat/faq)
✓ View Both Live
Merge into main
Updated
tes merge → mainlocalhost:4000 (main)Basic $0Pro $29Team $99
✓ Preserved & Merged
One repo folder·Per-agent branches·Live branch dev servers·AST merge into main

Semantic Merging ​

Line-based Git merges break when two agents edit the same file. Tessera parses your code with Tree-sitter to merge functions, imports, class methods, and manifest files structurally.

ts
// Agent 1 adds `locale`, Agent 2 adds `decimals` to the same signature:
export function formatCurrency(
  cents: number,
  currency: string = "USD",
  locale: string = "en-US",
  decimals: number = 2
): string {
  const amount = (cents / 100).toFixed(decimals);
  return `[${locale}] ${currency} ${amount}`;
}

Session Isolation ​

Each terminal tab and agent session can switch to its own branch without changing .git/HEAD for the rest of your workspace. Edits on the same branch combine automatically on disk, while edits on separate branches stay completely isolated.

bash
# Terminal 1 works on feat/pricing
tes switch feat/pricing

# Terminal 2 works on feat/faq at the same time
tes switch feat/faq

Instant Sandboxes ​

Run builds, tests, and dev servers on any branch without reinstalling dependencies. Tessera clones node_modules, target, and .venv using filesystem copy-on-write and assigns each session its own port and test database.

bash
# Run builds or dev servers in isolated Copy-on-Write branch sandboxes
tes exec -b feat/pricing -- npm run build
tes exec -b feat/faq -- npm test

Work in Parallel

Run multiple agents on the same branch, split features across branches, or run two dev servers side by side from a single checkout.

bash
# Initialize Tessera and install AI editor rules
tes init

# Prompt two AI agents in parallel:
# Tab 1: "On branch feat/pricing, build PricingCalculator.vue and add it to App.vue"
# Tab 2: "On branch feat/faq, build TestimonialsFaq.vue and add it to App.vue"

# Check live agent sessions and claimed files
tes radar
bash
# Enable (tes:<branch>) in your shell prompt
tes env --install

# Terminal 1: run feat/pricing on port 4100
tes switch feat/pricing
npm run dev

# Terminal 2: run feat/faq on port 4200
tes switch feat/faq
npm run dev
bash
# Inspect branch diffs against main
tes diff -b feat/pricing
tes diff -b feat/faq

# Merge both branches into main using 3-way AST merge
tes merge feat/pricing feat/faq --into main -m "feat: add pricing and faq"

# Push to remote
tes push
bash
# Initialize Tessera and install AI editor rules
tes init

# Prompt two AI agents in parallel:
# Tab 1: "On branch feat/pricing, build PricingCalculator.vue and add it to App.vue"
# Tab 2: "On branch feat/faq, build TestimonialsFaq.vue and add it to App.vue"

# Check live agent sessions and claimed files
tes radar
bash
# Enable (tes:<branch>) in your shell prompt
tes env --install

# Terminal 1: run feat/pricing on port 4100
tes switch feat/pricing
npm run dev

# Terminal 2: run feat/faq on port 4200
tes switch feat/faq
npm run dev
bash
# Inspect branch diffs against main
tes diff -b feat/pricing
tes diff -b feat/faq

# Merge both branches into main using 3-way AST merge
tes merge feat/pricing feat/faq --into main -m "feat: add pricing and faq"

# Push to remote
tes push