@dosu/cli 0.20.0 → 0.20.2
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 +123 -19
- package/bin/dosu.js +17 -3
- package/package.json +10 -12
package/README.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# dosu-cli
|
|
2
2
|
|
|
3
|
+
> Connect [Dosu](https://dosu.dev) to your AI coding tools. `dosu` authenticates you, picks a Dosu deployment, and wires the Dosu MCP server into Claude Code, Cursor, Codex, and more — plus commands to drive the Dosu platform from your terminal.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@dosu/cli)
|
|
6
|
+
[](https://github.com/dosu-ai/dosu-cli/actions/workflows/ci.yml)
|
|
7
|
+
[](https://codecov.io/gh/dosu-ai/dosu-cli)
|
|
8
|
+
[](#license)
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx @dosu/cli setup
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The interactive wizard authenticates you via browser OAuth, lets you pick a Dosu deployment (or OSS / public-library mode), mints an API key, detects which AI tools you have installed, and writes the Dosu MCP server entry into each one's config. Restart your AI tool and Dosu is available.
|
|
17
|
+
|
|
18
|
+
Run `dosu` with no arguments any time to open the interactive menu.
|
|
19
|
+
|
|
3
20
|
## Installation
|
|
4
21
|
|
|
5
22
|
### npx / npm (Recommended)
|
|
@@ -65,30 +82,117 @@ Or right-click the binary, select "Open", and click "Open" in the dialog.
|
|
|
65
82
|
|
|
66
83
|
**Note:** Installing via Homebrew avoids this issue automatically.
|
|
67
84
|
|
|
68
|
-
##
|
|
85
|
+
## Usage
|
|
86
|
+
|
|
87
|
+
### Core commands
|
|
88
|
+
|
|
89
|
+
| Command | Description |
|
|
90
|
+
|---|---|
|
|
91
|
+
| `dosu` | Launch the interactive TUI menu |
|
|
92
|
+
| `dosu setup` | Run the setup wizard (auth → deployment → detect tools → configure) |
|
|
93
|
+
| `dosu login` | Authenticate with Dosu via browser OAuth |
|
|
94
|
+
| `dosu logout` | Clear saved credentials |
|
|
95
|
+
| `dosu status` | Show current authentication and MCP status |
|
|
96
|
+
| `dosu mcp list` | List supported AI tools |
|
|
97
|
+
| `dosu mcp add <tool>` | Add the Dosu MCP server to a specific tool |
|
|
98
|
+
| `dosu logs` | View or manage debug logs (`--tail`, `--clear`) |
|
|
99
|
+
|
|
100
|
+
`dosu mcp add` takes `-g, --global` to install for all projects instead of project-local, and `--show-secret` to print the full manual config.
|
|
101
|
+
|
|
102
|
+
### Platform commands
|
|
103
|
+
|
|
104
|
+
Once authenticated against a deployment, you can drive the Dosu platform without leaving the terminal:
|
|
105
|
+
|
|
106
|
+
| Command | Description |
|
|
107
|
+
|---|---|
|
|
108
|
+
| `dosu ask` | Ask a question and get an AI-generated answer |
|
|
109
|
+
| `dosu knowledge` | Search and browse your knowledge base |
|
|
110
|
+
| `dosu docs` | Manage documents (list, create, update, import, publish, AI-generate) |
|
|
111
|
+
| `dosu suggest` | Review and accept AI document suggestions |
|
|
112
|
+
| `dosu threads` | List and manage conversation threads |
|
|
113
|
+
| `dosu review` | Document review workflow |
|
|
114
|
+
| `dosu sources` | Manage connected data sources (list, sync, update) |
|
|
115
|
+
| `dosu integrations` | List and inspect platform integrations (Slack, GitHub, …) |
|
|
116
|
+
| `dosu tags` | Manage knowledge base tags |
|
|
117
|
+
| `dosu members` | Manage team members and access requests |
|
|
118
|
+
| `dosu org` | Show organization information |
|
|
119
|
+
| `dosu deployments` | List / show / switch deployments |
|
|
120
|
+
| `dosu analytics` | View usage statistics |
|
|
121
|
+
| `dosu insights` | Open a visual report of your Dosu space activity |
|
|
122
|
+
| `dosu skill` | Install / update / remove the Dosu agent skill |
|
|
123
|
+
| `dosu hooks` | Install / remove / diagnose Dosu coding-agent hooks |
|
|
124
|
+
|
|
125
|
+
Run `dosu <command> --help` for subcommands and flags.
|
|
126
|
+
|
|
127
|
+
### Supported AI tools
|
|
128
|
+
|
|
129
|
+
`dosu mcp add <id>` and the setup wizard support:
|
|
130
|
+
|
|
131
|
+
| ID | Tool |
|
|
132
|
+
|---|---|
|
|
133
|
+
| `claude` | Claude Code |
|
|
134
|
+
| `claude-desktop` | Claude Desktop |
|
|
135
|
+
| `cursor` | Cursor |
|
|
136
|
+
| `vscode` | VS Code |
|
|
137
|
+
| `codex` | Codex CLI |
|
|
138
|
+
| `gemini` | Gemini CLI |
|
|
139
|
+
| `windsurf` | Windsurf |
|
|
140
|
+
| `zed` | Zed |
|
|
141
|
+
| `cline` | Cline |
|
|
142
|
+
| `cline-cli` | Cline CLI |
|
|
143
|
+
| `copilot` | GitHub Copilot CLI |
|
|
144
|
+
| `opencode` | OpenCode |
|
|
145
|
+
| `antigravity` | Antigravity |
|
|
146
|
+
| `mcporter` | MCPorter |
|
|
147
|
+
| `factory` | Factory |
|
|
148
|
+
| `manual` | Manual Configuration (prints config to paste yourself) |
|
|
149
|
+
|
|
150
|
+
### Non-interactive / agent setup
|
|
151
|
+
|
|
152
|
+
For coding agents and CI, `setup` has a non-interactive mode:
|
|
69
153
|
|
|
70
|
-
|
|
154
|
+
```bash
|
|
155
|
+
dosu setup --agent --tool claude
|
|
156
|
+
```
|
|
71
157
|
|
|
72
|
-
|
|
158
|
+
Combine with `dosu login --request` / `--check <ticket>` for human-in-the-loop authentication, and `--mode oss|cloud` to skip the mode prompt.
|
|
159
|
+
|
|
160
|
+
## Configuration
|
|
161
|
+
|
|
162
|
+
Credentials and the selected deployment live in `~/.config/dosu-cli/config.json`. Set `DOSU_DEV=true` to isolate config under `~/.config/dosu-cli-dev/`.
|
|
163
|
+
|
|
164
|
+
To repoint a published build at a different backend without rebuilding, set any of these runtime overrides:
|
|
165
|
+
|
|
166
|
+
- `DOSU_WEB_APP_URL_OVERRIDE`
|
|
167
|
+
- `DOSU_BACKEND_URL_OVERRIDE`
|
|
168
|
+
- `SUPABASE_URL_OVERRIDE`
|
|
169
|
+
- `SUPABASE_ANON_KEY_OVERRIDE`
|
|
170
|
+
|
|
171
|
+
## Development
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
bun install # install dependencies
|
|
175
|
+
bun run dev # run the CLI from source
|
|
176
|
+
bun run test # run tests (vitest)
|
|
177
|
+
bun run check # lint + format check (Biome)
|
|
178
|
+
bun run typecheck # tsc --noEmit
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
See [AGENTS.md](AGENTS.md) for architecture and contributor notes.
|
|
182
|
+
|
|
183
|
+
## Releasing (for maintainers)
|
|
73
184
|
|
|
74
|
-
|
|
185
|
+
Releases are fully automated with [semantic-release](https://github.com/semantic-release/semantic-release) — there are no manual version tags. Every push to a release branch is analyzed for [Conventional Commit](https://www.conventionalcommits.org/) messages, which determine the version bump.
|
|
75
186
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
```
|
|
187
|
+
| Branch | npm dist-tag | Version shape |
|
|
188
|
+
|---|---|---|
|
|
189
|
+
| `main` | `latest` | `0.20.1` |
|
|
190
|
+
| `alpha` | `alpha` | `0.20.1-alpha.1` |
|
|
81
191
|
|
|
82
|
-
|
|
83
|
-
- Run tests
|
|
84
|
-
- Build binaries for all platforms (macOS, Linux, Windows)
|
|
85
|
-
- Create a GitHub release with the binaries
|
|
86
|
-
- Publish to npm (`@dosu/cli`)
|
|
87
|
-
- Update the Homebrew formula
|
|
192
|
+
On a qualifying push, the CI pipeline bumps the version, builds binaries for all platforms, creates a GitHub release with the archives, publishes to npm, and (for stable releases only) updates the Homebrew formula.
|
|
88
193
|
|
|
89
|
-
|
|
194
|
+
Commit messages that don't follow Conventional Commits are invisible to semantic-release and won't trigger a release. See [AGENTS.md](AGENTS.md) for the full type → release-impact table and the alpha channel workflow.
|
|
90
195
|
|
|
91
|
-
|
|
92
|
-
- Pre-releases: `v0.1.0-alpha`, `v0.1.0-beta`, `v0.1.0-rc1`
|
|
196
|
+
## License
|
|
93
197
|
|
|
94
|
-
|
|
198
|
+
MIT — see the `license` field in [package.json](package.json).
|
package/bin/dosu.js
CHANGED
|
@@ -4548,7 +4548,7 @@ var init_dist4 = __esm(() => {
|
|
|
4548
4548
|
function getVersionString() {
|
|
4549
4549
|
return `v${VERSION}`;
|
|
4550
4550
|
}
|
|
4551
|
-
var VERSION = "0.20.
|
|
4551
|
+
var VERSION = "0.20.2";
|
|
4552
4552
|
|
|
4553
4553
|
// src/debug/logger.ts
|
|
4554
4554
|
import {
|
|
@@ -10992,8 +10992,22 @@ async function startOAuthFlow(signal, path2 = "/cli/auth", params = {}) {
|
|
|
10992
10992
|
const authURL = buildAuthURL(callbackURL, path2, params);
|
|
10993
10993
|
logger.info("auth.flow", `Auth URL: ${authURL}`);
|
|
10994
10994
|
const open2 = await Promise.resolve().then(() => (init_open(), exports_open));
|
|
10995
|
-
|
|
10996
|
-
|
|
10995
|
+
let browserOpened = false;
|
|
10996
|
+
try {
|
|
10997
|
+
await open2.default(authURL);
|
|
10998
|
+
browserOpened = true;
|
|
10999
|
+
logger.info("auth.flow", "Browser open command executed");
|
|
11000
|
+
} catch (openErr) {
|
|
11001
|
+
logger.warn("auth.flow", `Could not open browser automatically: ${openErr instanceof Error ? openErr.message : String(openErr)}`);
|
|
11002
|
+
}
|
|
11003
|
+
if (!browserOpened) {
|
|
11004
|
+
console.log(`
|
|
11005
|
+
Could not open a browser automatically.`);
|
|
11006
|
+
console.log(`Please open this URL in your browser to log in:
|
|
11007
|
+
`);
|
|
11008
|
+
console.log(` ${authURL}
|
|
11009
|
+
`);
|
|
11010
|
+
}
|
|
10997
11011
|
const timeout = new Promise((_3, reject) => {
|
|
10998
11012
|
timeoutId = setTimeout(() => {
|
|
10999
11013
|
logger.warn("auth.flow", "Authentication timed out (8min)");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dosu/cli",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Dosu CLI - Manage MCP servers for AI tools",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,25 +35,23 @@
|
|
|
35
35
|
"node": ">=18"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@biomejs/biome": "^2.
|
|
38
|
+
"@biomejs/biome": "^2.5.0",
|
|
39
|
+
"@clack/prompts": "^0.10.1",
|
|
40
|
+
"@dosu/api-types": "0.0.7",
|
|
39
41
|
"@semantic-release/changelog": "^6.0.3",
|
|
40
42
|
"@semantic-release/exec": "^7.1.0",
|
|
41
43
|
"@semantic-release/git": "^10.0.1",
|
|
42
44
|
"@trpc/client": "11.8.0",
|
|
43
45
|
"@trpc/server": "11.8.0",
|
|
44
|
-
"@types/bun": "^1.3.
|
|
45
|
-
"@vitest/coverage-v8": "^
|
|
46
|
-
"semantic-release": "^25.0.3",
|
|
47
|
-
"typescript": "^5.8.3",
|
|
48
|
-
"vitest": "^3.1.1"
|
|
49
|
-
},
|
|
50
|
-
"dependencies": {
|
|
51
|
-
"@clack/prompts": "^0.10.0",
|
|
52
|
-
"@dosu/api-types": "0.0.7",
|
|
46
|
+
"@types/bun": "^1.3.14",
|
|
47
|
+
"@vitest/coverage-v8": "^4.1.9",
|
|
53
48
|
"commander": "^13.1.0",
|
|
54
|
-
"open": "^10.
|
|
49
|
+
"open": "^10.2.0",
|
|
55
50
|
"picocolors": "^1.1.1",
|
|
51
|
+
"semantic-release": "^25.0.5",
|
|
56
52
|
"superjson": "^2.2.6",
|
|
53
|
+
"typescript": "^6.0.3",
|
|
54
|
+
"vitest": "^4.1.9",
|
|
57
55
|
"write-file-atomic": "^5.0.1"
|
|
58
56
|
}
|
|
59
57
|
}
|