# Claude Code --add-dir vs ivar for work across repos
> What claude code --add-dir and Claude Code Projects do for several repositories, and what ivar adds, as of 2026-10-06.
Source: https://ivar.run/compare/ivar-vs-claude-add-dir

`--add-dir` gives one Claude Code session file access to extra folders. `ivar` makes those folders a feature: a worktree per repo on one branch, writes guarded to the repos you promote (kernel-enforced on Linux; see [Limitations](/docs/reference/limitations)), one plan, and one pull request per repo. It also works with OpenCode and OMP.

## At a glance

All claims about Claude Code are as of 2026-10-06 and come from the sources listed at the bottom.

| | `claude --add-dir` | Claude Code Projects | `ivar` |
|---|---|---|---|
| Unit | extra directories in one session | cloud project that clones every repo | feature across repos |
| Runs | local | cloud, needs github.com and the Claude GitHub App | local; hall, feature and session work with any git remote, pull requests go through `gh` and need GitHub |
| Branch | not documented across local directories | one branch per thread | one branch name in every promoted repo |
| Config from the extra repos | skills, commands, agents, plugin keys; `CLAUDE.md` only with an env var | `CLAUDE.md` and skills load; permission rules, hooks and `env` don't apply | one `HALL.md` for the session |
| Pull requests | not documented | opens a PR from the thread | one per promoted repo, via `gh`, on GitHub |
| Harnesses | Claude Code | Claude Code | Claude Code, OpenCode, OMP |

## What `--add-dir` does

`--add-dir`, `/add-dir` and `additionalDirectories` extend the directories Claude Code works in. Files there follow the same permission rules as the original directory.

The docs say additional directories grant file access, not configuration. Most of `.claude/` is not loaded. The exceptions that load are `.claude/skills/`, `.claude/commands/`, `.claude/agents/`, and the `enabledPlugins` and `extraKnownMarketplaces` keys. `CLAUDE.md`, `.claude/rules/` and `CLAUDE.local.md` load only with `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1`. `permissions.additionalDirectories` gives file access and nothing else.

## What it leaves to you

Added directories follow the original directory's permission rules. A shared branch across the directories is not documented. `ivar feature create` and `promote` give every repo you name one branch name.

## And Claude Code Projects?

Projects are in public beta on Pro and Max, not Team or Enterprise. Each thread clones every repository of the project, works on its own branch and opens a PR. Projects need github.com (not GitHub Enterprise Server, GitLab or Bitbucket), push access and the Claude GitHub App. With several repositories, permission rules, hooks and `env` don't apply, while `CLAUDE.md` and skills load from all of them. Local sessions are not covered by these options: local work joins a project by pushing the branch.

## When `--add-dir` is enough

Pick `--add-dir` when you need to read a neighbouring repo, the change is small, or no coordinated PR is involved. It needs no hall and no setup.

Pick Projects when the work can live in the cloud on github.com.

## When `ivar` is the better choice

The change crosses repos and has to land on one branch name with a plan, a write scope you control (guarded, kernel-enforced on Linux; see [Limitations](/docs/reference/limitations)), and one PR per repo. `ivar` runs on your machine on Linux and macOS. Hall, feature and session work with any git remote; pull requests go through `gh` and need GitHub.

## Using them together

Run Claude Code as the harness of an `ivar` session. The session directory holds every promoted repo, so you do not need `--add-dir` for them. See [Use Claude Code with multiple repositories](/docs/with/claude-code).

Back to [all comparisons](/compare), or read [Use Claude Code with multiple repositories](/docs/with/claude-code).

## Try it

```sh
ivar feature create avatar-url
ivar feature promote avatar-url api
ivar feature promote avatar-url web
ivar session start avatar-url
```

## FAQ

### Does `--add-dir` create a branch or a worktree?

Not documented. The docs describe file access. `ivar feature promote` creates the feature branch and worktree in each repo you name.

### Does `--add-dir` load the other repo's hooks?

Not documented. The docs list what loads from an added directory: skills, commands, agents and two plugin keys.

### Can I use Projects and `ivar` together?

Yes. Projects run in the cloud and `ivar` runs locally, so they cover different work.

## Sources

- [Claude Code permissions, working directories](https://code.claude.com/docs/en/permissions#working-directories), accessed 2026-10-06.
- [Claude Projects](https://code.claude.com/docs/en/claude-projects), accessed 2026-10-06.
