@hasna/accounts 0.1.5 → 0.1.6

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/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @hasna/accounts
2
2
 
3
3
  > Manage and switch between multiple AI coding tool profiles/accounts on one
4
- > machine — Claude Code, Codex CLI, opencode, Cursor Agent, Kimi Code, Grok
5
- > Build, and custom tools.
4
+ > machine — Claude Code, Takumi, Codex CLI, Gemini CLI, opencode, Cursor
5
+ > Agent, Pi Coding Agent, Hermes, Kimi Code, Grok Build, and custom tools.
6
6
 
7
7
  `accounts` is a local-first CLI. Each **profile** is an isolated config directory.
8
8
  Switch **in the terminal** with `CLAUDE_CONFIG_DIR`, or **in Cursor / VS Code** with
@@ -11,8 +11,9 @@ Switch **in the terminal** with `CLAUDE_CONFIG_DIR`, or **in Cursor / VS Code**
11
11
  - **Isolated profiles** — separate config dirs (skills, settings, sessions). Nothing leaks.
12
12
  - **Apply mode** — sync OAuth / credentials to live paths for IDEs (Claude-only today).
13
13
  - **Remembers the email** — auto-detected from `.claude.json` when possible.
14
- - **Multi-tool** — first-class built-ins for Claude, Codex, opencode, Cursor Agent,
15
- Kimi Code, and Grok Build; custom tools via `accounts tools add`.
14
+ - **Multi-tool** — first-class built-ins for Claude, Takumi, Codex, Gemini,
15
+ opencode, Cursor Agent, Pi, Hermes, Kimi Code, and Grok Build; custom tools
16
+ via `accounts tools add`.
16
17
  - **Per-tool names** — `work` can exist for Claude, Codex, Cursor, etc.; pass
17
18
  `--tool` when a bare profile name is ambiguous.
18
19
  - **Local-first** — registry at `~/.hasna/accounts/`. No network, no telemetry.
@@ -197,9 +198,13 @@ Overrides: `ACCOUNTS_HOME`, `ACCOUNTS_STORE_PATH`.
197
198
  | Tool | id | Env var | Default dir |
198
199
  |------|----|---------|-------------|
199
200
  | Claude Code | `claude` | `CLAUDE_CONFIG_DIR` | `~/.claude` |
201
+ | Takumi | `takumi` | `TAKUMI_CONFIG_DIR` | `~/.takumi` |
200
202
  | Codex CLI | `codex` | `CODEX_HOME` | `~/.codex` |
203
+ | Gemini CLI | `gemini` | `GEMINI_CONFIG_DIR` | `~/.gemini` |
201
204
  | opencode | `opencode` | `OPENCODE_CONFIG_DIR`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME` | `~/.config/opencode` |
202
205
  | Cursor Agent | `cursor` | `CURSOR_CONFIG_DIR` | `~/.cursor` |
206
+ | Pi Coding Agent | `pi` | `PI_CODING_AGENT_HOME` | `~/.pi` |
207
+ | Hermes | `hermes` | `HERMES_HOME` | `~/.hermes` |
203
208
  | Kimi Code | `kimi` | `KIMI_CODE_HOME` | `~/.kimi-code` |
204
209
  | Grok Build | `grok` | `HOME` (process-scoped) | `~/.grok` |
205
210
 
package/dist/cli.js CHANGED
@@ -6760,6 +6760,25 @@ var BUILTIN_TOOLS = [
6760
6760
  loginHint: "complete the Codex login flow for this CODEX_HOME",
6761
6761
  resumeArgs: ["resume", "--last"]
6762
6762
  },
6763
+ {
6764
+ id: "takumi",
6765
+ label: "Takumi",
6766
+ envVar: "TAKUMI_CONFIG_DIR",
6767
+ defaultDir: join2(homedir2(), ".takumi"),
6768
+ bin: "takumi",
6769
+ loginHint: "complete Takumi auth in this TAKUMI_CONFIG_DIR",
6770
+ resumeArgs: ["--continue"],
6771
+ accountFile: ".claude.json",
6772
+ emailPath: ["oauthAccount", "emailAddress"]
6773
+ },
6774
+ {
6775
+ id: "gemini",
6776
+ label: "Gemini CLI",
6777
+ envVar: "GEMINI_CONFIG_DIR",
6778
+ defaultDir: join2(homedir2(), ".gemini"),
6779
+ bin: "gemini",
6780
+ loginHint: "complete Gemini auth in this GEMINI_CONFIG_DIR"
6781
+ },
6763
6782
  {
6764
6783
  id: "opencode",
6765
6784
  label: "opencode",
@@ -6783,6 +6802,22 @@ var BUILTIN_TOOLS = [
6783
6802
  loginArgs: ["login"],
6784
6803
  loginHint: "complete cursor-agent login for this CURSOR_CONFIG_DIR"
6785
6804
  },
6805
+ {
6806
+ id: "pi",
6807
+ label: "Pi Coding Agent",
6808
+ envVar: "PI_CODING_AGENT_HOME",
6809
+ defaultDir: join2(homedir2(), ".pi"),
6810
+ bin: "pi",
6811
+ loginHint: "complete Pi coding agent auth in this PI_CODING_AGENT_HOME"
6812
+ },
6813
+ {
6814
+ id: "hermes",
6815
+ label: "Hermes",
6816
+ envVar: "HERMES_HOME",
6817
+ defaultDir: join2(homedir2(), ".hermes"),
6818
+ bin: "hermes",
6819
+ loginHint: "complete Hermes auth in this HERMES_HOME"
6820
+ },
6786
6821
  {
6787
6822
  id: "kimi",
6788
6823
  label: "Kimi Code",
package/dist/index.js CHANGED
@@ -4177,6 +4177,25 @@ var BUILTIN_TOOLS = [
4177
4177
  loginHint: "complete the Codex login flow for this CODEX_HOME",
4178
4178
  resumeArgs: ["resume", "--last"]
4179
4179
  },
4180
+ {
4181
+ id: "takumi",
4182
+ label: "Takumi",
4183
+ envVar: "TAKUMI_CONFIG_DIR",
4184
+ defaultDir: join2(homedir2(), ".takumi"),
4185
+ bin: "takumi",
4186
+ loginHint: "complete Takumi auth in this TAKUMI_CONFIG_DIR",
4187
+ resumeArgs: ["--continue"],
4188
+ accountFile: ".claude.json",
4189
+ emailPath: ["oauthAccount", "emailAddress"]
4190
+ },
4191
+ {
4192
+ id: "gemini",
4193
+ label: "Gemini CLI",
4194
+ envVar: "GEMINI_CONFIG_DIR",
4195
+ defaultDir: join2(homedir2(), ".gemini"),
4196
+ bin: "gemini",
4197
+ loginHint: "complete Gemini auth in this GEMINI_CONFIG_DIR"
4198
+ },
4180
4199
  {
4181
4200
  id: "opencode",
4182
4201
  label: "opencode",
@@ -4200,6 +4219,22 @@ var BUILTIN_TOOLS = [
4200
4219
  loginArgs: ["login"],
4201
4220
  loginHint: "complete cursor-agent login for this CURSOR_CONFIG_DIR"
4202
4221
  },
4222
+ {
4223
+ id: "pi",
4224
+ label: "Pi Coding Agent",
4225
+ envVar: "PI_CODING_AGENT_HOME",
4226
+ defaultDir: join2(homedir2(), ".pi"),
4227
+ bin: "pi",
4228
+ loginHint: "complete Pi coding agent auth in this PI_CODING_AGENT_HOME"
4229
+ },
4230
+ {
4231
+ id: "hermes",
4232
+ label: "Hermes",
4233
+ envVar: "HERMES_HOME",
4234
+ defaultDir: join2(homedir2(), ".hermes"),
4235
+ bin: "hermes",
4236
+ loginHint: "complete Hermes auth in this HERMES_HOME"
4237
+ },
4203
4238
  {
4204
4239
  id: "kimi",
4205
4240
  label: "Kimi Code",
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/lib/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,aAAa,CAAC;AAGzE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,EA+DlC,CAAC;AAEF,eAAO,MAAM,YAAY,WAAW,CAAC;AAIrC,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,oFAAoF;AACpF,wBAAgB,SAAS,IAAI,OAAO,EAAE,CAMrC;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAS3C;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAanD;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAWjD"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/lib/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,aAAa,CAAC;AAGzE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,EAkGlC,CAAC;AAEF,eAAO,MAAM,YAAY,WAAW,CAAC;AAIrC,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,oFAAoF;AACpF,wBAAgB,SAAS,IAAI,OAAO,EAAE,CAMrC;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAS3C;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAanD;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAWjD"}
package/dist/mcp.js CHANGED
@@ -16811,6 +16811,25 @@ var BUILTIN_TOOLS = [
16811
16811
  loginHint: "complete the Codex login flow for this CODEX_HOME",
16812
16812
  resumeArgs: ["resume", "--last"]
16813
16813
  },
16814
+ {
16815
+ id: "takumi",
16816
+ label: "Takumi",
16817
+ envVar: "TAKUMI_CONFIG_DIR",
16818
+ defaultDir: join2(homedir2(), ".takumi"),
16819
+ bin: "takumi",
16820
+ loginHint: "complete Takumi auth in this TAKUMI_CONFIG_DIR",
16821
+ resumeArgs: ["--continue"],
16822
+ accountFile: ".claude.json",
16823
+ emailPath: ["oauthAccount", "emailAddress"]
16824
+ },
16825
+ {
16826
+ id: "gemini",
16827
+ label: "Gemini CLI",
16828
+ envVar: "GEMINI_CONFIG_DIR",
16829
+ defaultDir: join2(homedir2(), ".gemini"),
16830
+ bin: "gemini",
16831
+ loginHint: "complete Gemini auth in this GEMINI_CONFIG_DIR"
16832
+ },
16814
16833
  {
16815
16834
  id: "opencode",
16816
16835
  label: "opencode",
@@ -16834,6 +16853,22 @@ var BUILTIN_TOOLS = [
16834
16853
  loginArgs: ["login"],
16835
16854
  loginHint: "complete cursor-agent login for this CURSOR_CONFIG_DIR"
16836
16855
  },
16856
+ {
16857
+ id: "pi",
16858
+ label: "Pi Coding Agent",
16859
+ envVar: "PI_CODING_AGENT_HOME",
16860
+ defaultDir: join2(homedir2(), ".pi"),
16861
+ bin: "pi",
16862
+ loginHint: "complete Pi coding agent auth in this PI_CODING_AGENT_HOME"
16863
+ },
16864
+ {
16865
+ id: "hermes",
16866
+ label: "Hermes",
16867
+ envVar: "HERMES_HOME",
16868
+ defaultDir: join2(homedir2(), ".hermes"),
16869
+ bin: "hermes",
16870
+ loginHint: "complete Hermes auth in this HERMES_HOME"
16871
+ },
16837
16872
  {
16838
16873
  id: "kimi",
16839
16874
  label: "Kimi Code",
@@ -17399,7 +17434,7 @@ function ok(data) {
17399
17434
  function fail(message) {
17400
17435
  return { content: [{ type: "text", text: JSON.stringify({ error: message }) }], isError: true };
17401
17436
  }
17402
- var server = new Server({ name: "accounts", version: "0.1.5" }, { capabilities: { tools: {} } });
17437
+ var server = new Server({ name: "accounts", version: "0.1.6" }, { capabilities: { tools: {} } });
17403
17438
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
17404
17439
  tools: [
17405
17440
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/accounts",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Manage and switch between multiple Claude Code (and other AI coding tool) profiles/accounts locally — isolated config dirs, per-account email, one-command switching.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -30,8 +30,12 @@
30
30
  "claude",
31
31
  "claude-code",
32
32
  "codex",
33
+ "takumi",
34
+ "gemini",
33
35
  "opencode",
34
36
  "cursor-agent",
37
+ "pi",
38
+ "hermes",
35
39
  "kimi-code",
36
40
  "grok-build",
37
41
  "profile",