@bordoni/claudep 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.1] - 2026-09-08
10
+
11
+ ### Changed
12
+
13
+ - `rules/`, `output-styles/`, `themes/` and `workflows/` are shared with every profile, matching what Claude Code 2.1.263 reads from the user config directory. A custom theme named in the shared `settings.json` now resolves inside a profile. Existing profiles pick the links up on their next `claudep init <name>`.
14
+ - `teams/`, `uploads/`, `usage-data/`, `mcp-discovery-cache/`, `mcp-skill-archives/`, `daemon.json`, `launch.json`, `scheduled_tasks.json` and `seed-admin` are known-private, so `claudep doctor` no longer reports them as unclassified.
15
+ - The README notes that `claude --bg` sessions and `claude daemon install` do not work under a profile in Claude Code 2.1.263.
16
+
9
17
  ## [0.2.0] - 2026-09-07
10
18
 
11
19
  ### Added
@@ -55,7 +63,8 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
55
63
  - Keychain isolation per config dir verified against Claude Code 2.1.259: the service name is `Claude Code-credentials-<sha256(dir)[0:8]>`.
56
64
  - Test suite with `bun test`, a sandboxed `$HOME`, a fake `claude` and `security` on PATH, and a real-shell test for the hook. CI runs typecheck, lint and tests on macOS and Linux.
57
65
 
58
- [Unreleased]: https://github.com/bordoni/claudep/compare/0.2.0...HEAD
66
+ [Unreleased]: https://github.com/bordoni/claudep/compare/0.2.1...HEAD
67
+ [0.2.1]: https://github.com/bordoni/claudep/compare/0.2.0...0.2.1
59
68
  [0.2.0]: https://github.com/bordoni/claudep/compare/0.1.1...0.2.0
60
69
  [0.1.1]: https://github.com/bordoni/claudep/compare/0.1.0...0.1.1
61
70
  [0.1.0]: https://github.com/bordoni/claudep/releases/tag/0.1.0
package/README.md CHANGED
@@ -106,8 +106,8 @@ From then on, `cd` into a pinned tree sets `CLAUDE_CONFIG_DIR` for that profile
106
106
  |---|---|
107
107
  | `CLAUDE.md` and other top-level `*.md` | `.claude.json` (login identity, user-scope MCP servers, folder trust) |
108
108
  | `settings.json`, `keybindings.json`, `statusline-command.sh` | org-pushed `remote-settings.json`, `policy-limits.json` |
109
- | `hooks/`, `skills/`, `commands/`, `agents/`, `plugins/`, `plans/` | `history.jsonl`, `todos/`, `sessions/`, caches, telemetry |
110
- | `projects/` (session transcripts and auto-memory) | credentials |
109
+ | `hooks/`, `skills/`, `commands/`, `agents/`, `rules/`, `output-styles/`, `themes/`, `workflows/` | `history.jsonl`, `todos/`, `sessions/`, `teams/`, caches, telemetry |
110
+ | `plugins/`, `plans/`, `projects/` (session transcripts and auto-memory) | credentials |
111
111
 
112
112
  On macOS, credentials never touch the profile directory: Claude Code stores them in the Keychain under `Claude Code-credentials-<sha256(CLAUDE_CONFIG_DIR)[0:8]>`, so every profile has its own login and refresh token and they cannot overwrite each other. I verified this against Claude Code 2.1.259. An older bug where every config dir shared one Keychain entry no longer applies. On Linux and Windows the login is `<profile>/.credentials.json`, a real file inside the profile that is never shared.
113
113
 
@@ -117,6 +117,7 @@ The shared list is an allowlist, so an account-specific file cannot leak across
117
117
 
118
118
  - The first time you open a repository under a new profile you will re-accept folder trust, and claude.ai connectors need their OAuth redone in that profile.
119
119
  - Two profiles running at the same time write the same `settings.json` and `plugins/`. That is the same situation as two terminals today.
120
+ - Background sessions and the daemon are tied to `~/.claude`. As of Claude Code 2.1.263, `claude daemon install` refuses to run with `CLAUDE_CONFIG_DIR` set, and `claude --bg` under a profile runs without the daemon.
120
121
  - Set `CLAUDE_PROFILES_DIR` to move the profiles root. Keep it out of iCloud or Dropbox; `.claude.json` is rewritten constantly and sync tools create conflict copies.
121
122
  - Never put `CLAUDE_CONFIG_DIR` in a `settings.json` `env` block. Claude Code detects that mismatch and disables features.
122
123
 
package/claudep.ts CHANGED
@@ -236,7 +236,19 @@ export function version(): string {
236
236
 
237
237
  /** Top-level base items symlinked into every profile (only if they exist). */
238
238
  export const SHARED_FILES = ["CLAUDE.md", "settings.json", "keybindings.json", "statusline-command.sh"] as const;
239
- export const SHARED_DIRS = ["hooks", "skills", "commands", "agents", "plugins", "plans", "projects"] as const;
239
+ export const SHARED_DIRS = [
240
+ "hooks",
241
+ "skills",
242
+ "commands",
243
+ "agents",
244
+ "plugins",
245
+ "plans",
246
+ "projects",
247
+ "rules",
248
+ "output-styles",
249
+ "themes",
250
+ "workflows",
251
+ ] as const;
240
252
 
241
253
  /** Per-profile state. First block is Claude Code's own runtime-state list;
242
254
  * the rest are observed extras. Never shared. */
@@ -280,6 +292,15 @@ export const KNOWN_PRIVATE = new Set<string>([
280
292
  ".last-update-result.json",
281
293
  "daemon-auth-cooldown",
282
294
  "daemon-auth-status.json",
295
+ "teams",
296
+ "uploads",
297
+ "usage-data",
298
+ "mcp-discovery-cache",
299
+ "mcp-skill-archives",
300
+ "daemon.json",
301
+ "launch.json",
302
+ "scheduled_tasks.json",
303
+ "seed-admin",
283
304
  ]);
284
305
 
285
306
  /** Keys copied from the base .claude.json into a fresh profile so first-run
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bordoni/claudep",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.",
5
5
  "type": "module",
6
6
  "license": "MIT",