@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 +9 -4
- package/dist/cli.js +35 -0
- package/dist/index.js +35 -0
- package/dist/lib/tools.d.ts.map +1 -1
- package/dist/mcp.js +36 -1
- package/package.json +5 -1
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,
|
|
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,
|
|
15
|
-
Kimi Code, and Grok Build; custom tools
|
|
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",
|
package/dist/lib/tools.d.ts.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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.
|
|
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",
|