1# Claude
2
3T3 Code uses Claude Code's login and configuration. Start with the default provider
4for one account; [provider setup](./install.md#providers) covers installation and
5shared provider settings.
6
7## Separate accounts or configurations
8
9Use a separate Claude config directory for each account. This also works for named
10presets that need different Claude settings or a router connection.
11
12Keep your existing account in the default directory. On the environment's machine,
13create the second login:
14
15```bash
16mkdir -p ~/.claude_personal
17CLAUDE_CONFIG_DIR=~/.claude_personal claude auth login
18```
19
20Add another Claude instance in **Settings > Providers**:
21
22| Instance | Binary path | CLAUDE_CONFIG_DIR path |
23| --------------- | ----------- | ---------------------- |
24| Claude Work | `claude` | Leave empty |
25| Claude Personal | `claude` | `~/.claude_personal` |
26
27An empty config-directory setting uses Claude Code's normal configuration. The
28custom setting changes `CLAUDE_CONFIG_DIR`, leaving `HOME` and the system keychain
29location intact. Use the same variable for the login command. Setting `HOME`
30instead can put credentials where this provider will not find them.
31
32Check the account reported in provider settings after signing in. Existing
33threads can switch only between Claude instances with the same config directory.
34Separate account directories stay isolated, including their local conversation
35state. Claude does not have Codex's shared-home and shadow-home arrangement.
36
37For presets that differ only in API keys or endpoints, use the instance's
38**Environment variables**. Variable assignments do not belong in **Launch arguments**.
39
40Claude Code's verbose mode can stay enabled when you use Claude for text generation, including
41thread titles, branch names, commit messages, and pull request descriptions. On a remote connection,
42T3 Code uses the Claude configuration on the connected server.
43
44## Compact long conversations
45
46Set **Auto-compact after** in the Claude provider settings to an integer between
47`100000` and `1000000`. For example, `300000` asks Claude to summarize at about
48300,000 tokens. This changes when compaction happens, not the model's context
49window. Leave it empty for Claude Code's default.
50
51You can also send `/compact` in an existing conversation. Web and desktop offer
52**Compact context** from the context meter. When you return to a large thread
53after Claude's prompt cache expires, a **Compact** chip with the thread's token count shows
54next to the send button. While it is on, Enter summarizes the history first, then
55sends your message. Click the chip to switch it to **Full** and keep the full
56history for that message. The cache lasts about an hour on a Claude
57subscription and 5 minutes with an API key, Bedrock, or Vertex. See [commands and skills](./composer.md#commands-and-skills) for using
58composer commands.
59
60## Usage limits
61
62If your Claude subscription runs out of usage mid-turn, the thread shows which
63limit was reached and the remaining wait when Claude provides a reset time.
64Claude Code holds the turn until that window reopens, so it can keep showing as
65working. Wait for the reset, or stop the turn and continue later. The warning's
66timestamp shows when the displayed wait started.
67
68## Skills
69
70Claude skills come from the config directory's `skills` folder and the project's
71`.claude/skills` folder. If both define the same name, the config-directory copy
72wins. Skills disabled in Claude's settings do not appear in the composer.
73
74Use `$` in the composer to select a skill. Skills marked `disable-model-invocation`
75can still be started by you. Invoke those one per message: Claude directly runs
76only the last named skill and may try to start earlier ones through its Skill
77tool, which refuses skills reserved for manual invocation.
78
79## OpenRouter
80
81Create a Claude instance with its own config directory, such as
82`~/.claude_openrouter`, and keep **Binary path** set to `claude`. In that instance's
83**Environment variables**, use:
84
85| Variable | Value |
86| ---------------------- | ----------------------------------------- |
87| `ANTHROPIC_BASE_URL` | `https://openrouter.ai/api` |
88| `ANTHROPIC_AUTH_TOKEN` | Your OpenRouter API key, marked Sensitive |
89| `ANTHROPIC_API_KEY` | An explicitly empty value |
90
91If that Claude config directory has a cached Anthropic login, run `/logout` in a
92Claude Code session using that directory before starting the router setup. Cached
93login credentials can conflict with the router token.
94
95Select the model you want in T3 Code. For an OpenRouter model outside the built-in
96list, open that Claude instance in **Settings > Providers** and add its full model
97ID with **Add custom model**. Then select it in the chat model picker.
98`ANTHROPIC_DEFAULT_*_MODEL` variables map Claude Code aliases such as `sonnet`; they
99do not replace the explicit model ID selected in T3 Code. Custom models may have
100fewer effort, thinking, or context controls than built-in models.
101
102Verify the model used in OpenRouter's activity dashboard. For current compatibility
103requirements, use the
104[OpenRouter Claude Code guide](https://openrouter.ai/docs/cookbook/coding-agents/claude-code-integration).
105
106## Other routers
107
108A local router uses an ordinary Claude provider instance. Give it a separate
109config directory and put the router's endpoint and credential variables in that
110instance's **Environment variables**. The router must run where the environment
111can reach it. Follow the [Claude Code Router instructions](https://github.com/musistudio/claude-code-router)
112for its installation and routing configuration.