@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.
Files changed (3) hide show
  1. package/README.md +123 -19
  2. package/bin/dosu.js +17 -3
  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
+ [![npm version](https://img.shields.io/npm/v/@dosu/cli.svg)](https://www.npmjs.com/package/@dosu/cli)
6
+ [![CI](https://github.com/dosu-ai/dosu-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/dosu-ai/dosu-cli/actions/workflows/ci.yml)
7
+ [![codecov](https://codecov.io/gh/dosu-ai/dosu-cli/branch/main/graph/badge.svg)](https://codecov.io/gh/dosu-ai/dosu-cli)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](#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
- ## Releasing (for maintainers)
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
- Releases are automated via `bun build --compile` and GitHub Actions.
154
+ ```bash
155
+ dosu setup --agent --tool claude
156
+ ```
71
157
 
72
- ### Creating a Release
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
- 1. **Ensure all changes are committed and pushed to `main`**
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
- 2. **Create and push a new tag:**
77
- ```bash
78
- git tag v0.2.0
79
- git push origin v0.2.0
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
- 3. **GitHub Actions will automatically:**
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
- ### Version Naming
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
- - Production releases: `v1.0.0`, `v1.1.0`, `v2.0.0`
92
- - Pre-releases: `v0.1.0-alpha`, `v0.1.0-beta`, `v0.1.0-rc1`
196
+ ## License
93
197
 
94
- Pre-release tags (containing `-alpha`, `-beta`, `-rc`) are automatically marked as pre-releases on GitHub and published to npm under the `next` dist-tag.
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.0";
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
- await open2.default(authURL);
10996
- logger.info("auth.flow", "Browser open command executed");
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.0",
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.4.9",
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.11",
45
- "@vitest/coverage-v8": "^3.2.0",
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.1.0",
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
  }