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 +64 -38
- package/dist/index.js +899 -44
- package/package.json +30 -21
- package/dist/commands/login.js +0 -72
- package/dist/commands/logout.js +0 -21
- package/dist/commands/status.js +0 -38
- package/dist/env.js +0 -25
- package/dist/lib/config-store.js +0 -44
- package/dist/lib/device-flow.js +0 -110
- package/dist/lib/discovery.js +0 -27
- package/dist/lib/loopback-flow.js +0 -212
- package/dist/lib/output.js +0 -79
- package/dist/lib/refresh.js +0 -60
- package/dist/lib/token-store.js +0 -60
package/README.md
CHANGED
|
@@ -1,30 +1,54 @@
|
|
|
1
|
-
# dazzer-
|
|
1
|
+
# dazzer-connect
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
5
|
+
## You probably do not need this
|
|
6
6
|
|
|
7
|
-
|
|
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
|
|
11
|
-
npx dazzer-
|
|
19
|
+
# One-off, nothing installed
|
|
20
|
+
npx dazzer-connect auth login
|
|
12
21
|
|
|
13
|
-
# Or
|
|
14
|
-
npm i -g dazzer-
|
|
22
|
+
# Or keep it around
|
|
23
|
+
npm i -g dazzer-connect
|
|
15
24
|
dazzer auth login
|
|
16
25
|
```
|
|
17
26
|
|
|
18
|
-
|
|
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
|
-
##
|
|
37
|
+
## What you get, and how long it lasts
|
|
21
38
|
|
|
22
|
-
|
|
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
|
-
|
|
25
|
-
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"mcpServers": {
|
|
44
|
+
"dazzer": {
|
|
45
|
+
"url": "https://graph.dazzer.io/mcp"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
26
50
|
|
|
27
|
-
The
|
|
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-
|
|
59
|
+
"Authorization": "Bearer <your-pass>"
|
|
36
60
|
}
|
|
37
61
|
}
|
|
38
62
|
}
|
|
39
63
|
}
|
|
40
64
|
```
|
|
41
65
|
|
|
42
|
-
|
|
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
|
-
|
|
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 #
|
|
50
|
-
dazzer auth logout # sign out and
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
102
|
+
## Something wrong?
|
|
72
103
|
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
107
|
+
## Licence
|
|
77
108
|
|
|
78
|
-
|
|
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.
|