Conversation
…fig dir; drop the dead claude-credentials seed Two Claude Code seats live on the coordinator: cc in ~/.claude (the personal Claude Max login) and cc2 in ~/.claude-work (the leger.run login). Tom re-logged both by hand on 2026-09-22; this makes the arrangement durable. - fish: cc/cac/cc2/cac2 become one launcher. Claude Code never saves workspace trust for $HOME (docs: "trust acceptance is held for the current session only and is not written to disk"), so a seat typed in ~ showed "Accessing workspace" on every launch; the launcher now moves into $CLAUDE_ENVELOPE (default ~/today) when started from ~. `cc` clears CLAUDE_CONFIG_DIR explicitly: a terminal opened from a cc2 session inherits it, and the old alias then silently started cc2 (measured with a stub claude under runtime-test). TALLY_SEAT names the seat to hooks and receipts. cc3 lines are untouched. - secrets: remove the claude-credentials seed and its age file. The token had been dead since the 2026-08-04 rotation, and a seed that fires whenever ~/.claude/.credentials.json is absent could only revert a fresh /login after a rebuild. Verified: nix eval of the coordinator's age.secrets no longer lists it and the other nineteen are intact. - AGENTS.md: the seats paragraph (which login is which directory, the launch rule, where the meters are). Not a rebuild, not a merge; both are Tom's. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Makes the two-seat Claude Code arrangement durable after Tom's hand re-login of 2026-09-22:
ccis~/.claude(personal Claude Max),cc2is~/.claude-work(leger.run Claude Max).cc/cac/cc2/cac2share one function. Claude Code never saves workspace trust for$HOME(docs, security: "trust acceptance is held for the current session only and is not written to disk"), which is whycc2typed in~showed "Accessing workspace" on every launch. From~the launcher now moves into$CLAUDE_ENVELOPE(default~/today); elsewhere it starts where you are.ccclearsCLAUDE_CONFIG_DIRexplicitly: a terminal opened from inside a cc2 session inherits it, and the old alias then silently started cc2.TALLY_SEATnames the seat. cc3 lines untouched.claude-credentials.age, itssecrets.nixentry and theseedClaudeCredsactivation script. The token was dead since the August 4 rotation; a seed that fires whenever the credentials file is absent can only revert a fresh/loginafter a rebuild.Measured
fish -non config.fish;nix-instantiate --parseon both nix files.claudeunderruntime-test: from~both seats start in the envelope;cchasCLAUDE_CONFIG_DIRunset even when the parent shell carries it;cc2sets~/.claude-work;--continueand extra args pass through; a missing envelope returns 1 with a message.nix eval .#nixosConfigurations.coordinator.config.age.secrets: claude-credentials gone, the other nineteen intact.Not done here
No rebuild, no merge (Tom's). The per-seat writable settings split (
/modelcannot persist because settings.json is a store symlink for both seats) is a follow-up.🤖 Generated with Claude Code