dazzer-connect 0.1.0 → 0.1.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/README.md CHANGED
@@ -1,30 +1,54 @@
1
- # dazzer-cli
1
+ # dazzer-connect
2
2
 
3
- Sign in to Dazzer from your terminal and get a copy-paste MCP client configuration.
3
+ Dazzer is a memory your AI tools share: they check what you already know before answering, and save what settles. This signs you in from a terminal, for the tools that cannot sign in by themselves.
4
4
 
5
- Requires Node.js 20 or later.
5
+ ## You probably do not need this
6
6
 
7
- ## Install
7
+ Most AI clients can sign in on their own. If yours can, skip this package entirely:
8
+
9
+ - **Claude Code, Codex, Copilot, Cursor, Antigravity, Devin** — install the Dazzer plugin from inside the client. Each one words the command differently, so take it from the source rather than from here: [dazzer-io/dazzer-plugin](https://github.com/dazzer-io/dazzer-plugin). This is the route Dazzer's own first-time setup uses.
10
+ - **Claude's desktop app, Claude in a browser, anything else with a connectors screen** — open its settings, add a connector, paste `https://graph.dazzer.io/mcp`, and sign in there. Nothing to install.
11
+
12
+ Both of those stay connected and renew themselves. That leaves two cases, and they are the reason this exists: a client that only takes a pass you paste in, and a machine with no browser — a server, a container, a remote session.
13
+
14
+ ## Sign in
15
+
16
+ Needs Node.js 22.12 or later. Once installed, the command is `dazzer`.
8
17
 
9
18
  ```bash
10
- # One-off sign-in (downloads and runs the CLI)
11
- npx dazzer-cli auth login
19
+ # One-off, nothing installed
20
+ npx dazzer-connect auth login
12
21
 
13
- # Or install globally — the command is `dazzer`
14
- npm i -g dazzer-cli
22
+ # Or keep it around
23
+ npm i -g dazzer-connect
15
24
  dazzer auth login
16
25
  ```
17
26
 
18
- The CLI opens your browser to sign in (or falls back to a device code when headless). On success it prints MCP client configuration to your terminal.
27
+ Your browser opens to sign in. On a machine with no browser, add `--no-browser`:
28
+
29
+ ```bash
30
+ dazzer auth login --no-browser
31
+ ```
32
+
33
+ You get a link to open on any other device — your phone will do. Sign in there and the terminal finishes on its own.
34
+
35
+ Sign-in does try to notice a missing browser on its own, but do not count on it — on a machine that merely *thinks* it has a screen it will wait for a browser that never opens.
19
36
 
20
- ## Configure Claude Desktop
37
+ ## What you get, and how long it lasts
21
38
 
22
- After `dazzer auth login`, copy the JSON block from your terminal into your Claude Desktop MCP settings file:
39
+ Sign-in prints two ready-to-paste blocks. **Use the first one if you possibly can** — it names the address only, your client signs in for itself, and the connection renews without you:
23
40
 
24
- - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
25
- - **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
41
+ ```json
42
+ {
43
+ "mcpServers": {
44
+ "dazzer": {
45
+ "url": "https://graph.dazzer.io/mcp"
46
+ }
47
+ }
48
+ }
49
+ ```
26
50
 
27
- The block looks like this (your access token is filled in automatically):
51
+ The second carries a pass, for clients that cannot do that:
28
52
 
29
53
  ```json
30
54
  {
@@ -32,52 +56,54 @@ The block looks like this (your access token is filled in automatically):
32
56
  "dazzer": {
33
57
  "url": "https://graph.dazzer.io/mcp",
34
58
  "headers": {
35
- "Authorization": "Bearer <your-access-token>"
59
+ "Authorization": "Bearer <your-pass>"
36
60
  }
37
61
  }
38
62
  }
39
63
  }
40
64
  ```
41
65
 
42
- Merge it with any existing `mcpServers` entries, save the file, then restart Claude Desktop.
66
+ **That pass lasts about an hour.** Enough to get working now; not a way to set something up and walk away. When it expires, run `dazzer auth login` again — or switch to the first block and stop thinking about it.
43
67
 
44
- If keychain storage failed during login, the printed config is your fallback — paste it before closing the terminal.
68
+ Merge either one with any `mcpServers` entries you already have, save, and restart your client.
45
69
 
46
70
  ## Other commands
47
71
 
48
72
  ```bash
49
- dazzer auth status # show sign-in status
50
- dazzer auth logout # sign out and remove stored tokens
73
+ dazzer auth status # is my sign-in still good?
74
+ dazzer auth logout # sign out and delete what is stored
51
75
  dazzer --help
52
76
  ```
53
77
 
54
- ## Configuration
78
+ `auth status` asks the server rather than trusting what is on disk, so it can tell you your sign-in has been revoked elsewhere.
79
+
80
+ ## Where your sign-in is kept
55
81
 
56
- Production defaults apply when you omit flags and env vars:
82
+ Your passes go in your operating system's own credential store — Keychain on macOS, Credential Manager on Windows, Secret Service on Linux. Nothing is written in plain text. The rest, such as which server you signed in to and when it expires, sits in a settings folder alongside your other applications' settings.
57
83
 
58
- | Source | Variable | Default |
59
- |--------|----------|---------|
60
- | Flag | `--issuer` | — |
61
- | Env | `DAZZER_AUTH_ISSUER` | `https://auth.dazzer.io` |
62
- | Env | `DAZZER_AUTH_CLIENT_ID` | `dazzer-cli-local` |
63
- | Env | `DAZZER_AUTH_RESOURCE` | `https://graph.dazzer.io/mcp` |
84
+ Plenty of servers and containers have no credential store at all. Sign-in still completes and prints the blocks above, and `auth status` tells you that is what happened rather than claiming you are signed out.
64
85
 
65
- For local development against a running authorization server:
86
+ ## Settings
87
+
88
+ Everything points at production unless you say otherwise.
89
+
90
+ | Setting | What it is | Default |
91
+ |---|---|---|
92
+ | `DAZZER_AUTH_ISSUER` | where you sign in | `https://auth.dazzer.io` |
93
+ | `DAZZER_AUTH_CLIENT_ID` | which client is asking | `dazzer-cli-local` |
94
+ | `DAZZER_AUTH_RESOURCE` | what you are signing in to | `https://graph.dazzer.io/mcp` |
95
+
96
+ Signing in and checking status each take a matching flag — `--issuer`, `--client-id`, `--resource` — which wins over the setting. Against a sign-in server running on your own machine:
66
97
 
67
98
  ```bash
68
99
  dazzer auth login --issuer http://localhost:3003
69
100
  ```
70
101
 
71
- ## Token storage
102
+ ## Something wrong?
72
103
 
73
- - **Secrets** (access + refresh tokens): OS keychain via `@napi-rs/keyring` (macOS Keychain, Windows Credential Manager, Linux Secret Service). Prebuilt binaries install with the package — no compiler required.
74
- - **Metadata** (issuer, client id, expiry): config directory from `env-paths("dazzer")` — typically `~/Library/Application Support/dazzer/` on macOS.
104
+ Email [support@dazzer.io](mailto:support@dazzer.io). If it is a security problem, write to
105
+ [security@dazzer.io](mailto:security@dazzer.io) instead and please do not post it publicly first.
75
106
 
76
- If keychain storage fails, login still completes and prints copy-paste-ready MCP client config to stdout.
107
+ ## Licence
77
108
 
78
- ## Develop from source
79
-
80
- ```bash
81
- pnpm --filter dazzer-cli build
82
- node packages/oauth-cli/dist/index.js auth login --issuer http://localhost:3003
83
- ```
109
+ MIT.