Claude Code
What a Claude Code session materialises, the init flag that makes it the hall's provider, and how /ivar-discovery runs there.
Setup is harness-agnostic — see the quickstart for creating a hall and opening your first session. This page covers what is specific to Claude Code once you're there.
What lands in .claude/
A Claude Code session materialises a .claude/ directory at the view
directory's root, alongside the promoted repos:
.claude/commands/ holds only ivar-*.md — the glob is deliberately narrow so
a user's own commands in that directory stay untouched and committable.
.claude/skills/ carries every skill from both roots — the hall's committed
skills and your personal ones — materialised under its bare id; the directory
itself is gitignored because each child is a derived symlink back into .ivar/.
CLAUDE.md is the provider-native instructions file Claude Code reads at startup.
The hall's MCP servers land beside it in .mcp.json, rewritten in full from
ivar.json on every sync — see MCP servers.
The read-only guard for repos you haven't promoted is enforced by
.claude/hooks/ivar-execution-guard.sh, registered as a PreToolUse hook in
.claude/settings.json. It's a real hook plus a real cleared write bit — not a
prompt asking the agent to behave.
Add it to an existing hall
The quickstart covers ivar init. If the hall already
exists with a different provider, add Claude Code alongside it:
ivar provider add claude-codeWhere /ivar-discovery comes from
It is a slash command materialised from .claude/commands/ivar-discovery.md,
so you type it in the Claude Code chat rather than in a shell.