@notis_ai/cli 0.2.0 → 0.2.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 (81) hide show
  1. package/README.md +122 -158
  2. package/dist/scaffolds/notes/app/globals.css +3 -0
  3. package/dist/scaffolds/notes/app/layout.tsx +6 -0
  4. package/dist/scaffolds/notes/app/page.tsx +1465 -0
  5. package/dist/scaffolds/notes/components/ui/badge.tsx +28 -0
  6. package/dist/scaffolds/notes/components/ui/button.tsx +53 -0
  7. package/dist/scaffolds/notes/components/ui/card.tsx +56 -0
  8. package/dist/scaffolds/notes/components.json +20 -0
  9. package/dist/scaffolds/notes/lib/utils.ts +6 -0
  10. package/dist/scaffolds/notes/notis.config.ts +31 -0
  11. package/dist/scaffolds/notes/package.json +31 -0
  12. package/dist/scaffolds/notes/postcss.config.mjs +8 -0
  13. package/dist/scaffolds/notes/tailwind.config.ts +58 -0
  14. package/dist/scaffolds/notes/tsconfig.json +22 -0
  15. package/dist/scaffolds/notes/vite.config.ts +10 -0
  16. package/dist/scaffolds.json +13 -0
  17. package/package.json +12 -2
  18. package/skills/notis-apps/SKILL.md +162 -0
  19. package/skills/notis-apps/cli.md +208 -0
  20. package/skills/notis-cli/SKILL.md +258 -0
  21. package/skills/notis-query/cli.md +40 -0
  22. package/src/cli.js +1 -1
  23. package/src/command-specs/apps.js +1029 -59
  24. package/src/command-specs/helpers.js +6 -41
  25. package/src/command-specs/index.js +1 -7
  26. package/src/command-specs/meta.js +7 -6
  27. package/src/command-specs/tools.js +29 -34
  28. package/src/runtime/agent-browser.js +192 -0
  29. package/src/runtime/app-boundary-validator.js +132 -0
  30. package/src/runtime/app-dev-server.js +605 -0
  31. package/src/runtime/app-dev-sessions.js +87 -0
  32. package/src/runtime/app-platform.js +1037 -82
  33. package/src/runtime/cli-mode.generated.js +4 -0
  34. package/src/runtime/cli-mode.js +29 -0
  35. package/src/runtime/output.js +2 -2
  36. package/src/runtime/ports.js +15 -0
  37. package/src/runtime/profiles.js +36 -5
  38. package/src/runtime/transport.js +131 -6
  39. package/template/.harness/index.html.tmpl +211 -0
  40. package/template/app/globals.css +3 -0
  41. package/template/app/layout.tsx +6 -0
  42. package/template/app/page.tsx +90 -0
  43. package/template/components/ui/badge.tsx +28 -0
  44. package/template/components/ui/button.tsx +53 -0
  45. package/template/components/ui/card.tsx +56 -0
  46. package/template/components.json +20 -0
  47. package/template/lib/utils.ts +6 -0
  48. package/template/metadata/cover.png +0 -0
  49. package/template/metadata/screenshot-1.png +0 -0
  50. package/template/metadata/screenshot-2.png +0 -0
  51. package/template/metadata/screenshot-3.png +0 -0
  52. package/template/notis.config.ts +37 -0
  53. package/template/package.json +31 -0
  54. package/template/packages/sdk/package.json +32 -0
  55. package/template/packages/sdk/src/components/MultiSelectActionBar.tsx +273 -0
  56. package/template/packages/sdk/src/components/MultiSelectCheckbox.tsx +91 -0
  57. package/template/packages/sdk/src/components/MultiSelectDragOverlay.tsx +39 -0
  58. package/template/packages/sdk/src/config.ts +71 -0
  59. package/template/packages/sdk/src/hooks/useBackend.ts +41 -0
  60. package/template/packages/sdk/src/hooks/useDatabase.ts +76 -0
  61. package/template/packages/sdk/src/hooks/useMultiSelect.ts +503 -0
  62. package/template/packages/sdk/src/hooks/useNotis.ts +34 -0
  63. package/template/packages/sdk/src/hooks/useNotisNavigation.ts +49 -0
  64. package/template/packages/sdk/src/hooks/useTool.ts +64 -0
  65. package/template/packages/sdk/src/hooks/useTools.ts +56 -0
  66. package/template/packages/sdk/src/hooks/useTopBarSearch.ts +73 -0
  67. package/template/packages/sdk/src/hooks/useUpsertDocument.ts +50 -0
  68. package/template/packages/sdk/src/index.ts +54 -0
  69. package/template/packages/sdk/src/provider.tsx +43 -0
  70. package/template/packages/sdk/src/runtime.ts +161 -0
  71. package/template/packages/sdk/src/styles.css +38 -0
  72. package/template/packages/sdk/src/ui.ts +15 -0
  73. package/template/packages/sdk/src/vite.ts +56 -0
  74. package/template/packages/sdk/tsconfig.json +15 -0
  75. package/template/postcss.config.mjs +8 -0
  76. package/template/tailwind.config.ts +58 -0
  77. package/template/tsconfig.json +22 -0
  78. package/template/vite.config.ts +10 -0
  79. package/src/command-specs/auth.js +0 -178
  80. package/src/command-specs/db.js +0 -163
  81. package/src/runtime/app-preview-server.js +0 -272
package/README.md CHANGED
@@ -1,21 +1,23 @@
1
1
  # @notis_ai/cli
2
2
 
3
- Agent-first Notis CLI for apps, databases, and generic tool execution.
3
+ Agent-first Notis CLI for apps and generic tool execution.
4
4
 
5
5
  ## Install
6
6
 
7
- The Notis CLI is bundled automatically with the Notis desktop app.
7
+ Use the Notis CLI through NPX. Install and sign into Notis Desktop to keep the local CLI auth profile current; do not rely on an installed `notis` command. Related skills such as `notis-cli` and `notis-apps` are delivered through normal Notis skill sync for the signed-in user.
8
+
9
+ For CI, hosted agents, or internal scripts, pass a non-persisted token with `NOTIS_JWT=<token>`.
8
10
 
9
11
  ## Quick Start
10
12
 
11
13
  ```bash
12
- notis --help
13
- notis auth status
14
- notis apps list
15
- notis db list
14
+ npx --package @notis_ai/cli@latest -- notis --help
15
+ npx --package @notis_ai/cli@latest -- notis doctor
16
+ npx --package @notis_ai/cli@latest -- notis apps list
17
+ npx --package @notis_ai/cli@latest -- notis tools search "list Notis databases"
16
18
  ```
17
19
 
18
- If you're using the desktop app, login and logout keep the CLI profile in sync automatically.
20
+ The desktop app owns sign-in and keeps the CLI profile in sync automatically.
19
21
 
20
22
  The CLI defaults to `json` output in agent or non-TTY contexts and `table` output in interactive terminals.
21
23
 
@@ -29,211 +31,163 @@ The CLI defaults to `json` output in agent or non-TTY contexts and `table` outpu
29
31
  - `--timeout-ms <n>` — HTTP timeout in milliseconds
30
32
  - `--idempotency-key <key>` — Override the generated idempotency key for mutating commands
31
33
 
32
- ## Auth
33
-
34
- ### `notis auth login`
35
-
36
- Store credentials for a named CLI profile.
37
-
38
- When to use: Use this before authenticated commands, especially in fresh environments or CI profiles.
39
-
40
- Options:
41
- - `--jwt <token>` — JWT token to store for the profile.
42
-
43
- Examples:
44
- - `notis auth login --jwt <token>`
45
- - `notis auth login --profile staging --api-base http://localhost:3001`
46
-
47
- ### `notis auth logout`
48
-
49
- Remove the stored JWT for the active profile.
50
-
51
- When to use: Use this to clear local credentials without touching other profiles.
52
-
53
- Examples:
54
- - `notis auth logout`
55
- - `notis auth logout --profile staging`
56
-
57
- ### `notis auth status`
58
-
59
- Inspect local auth configuration and optionally verify it against the API.
60
-
61
- When to use: Use this before automating commands to confirm the active profile and token health.
62
-
63
- Options:
64
- - `--verify` — Perform a live authenticated roundtrip to the API.
65
-
66
- Examples:
67
- - `notis auth status`
68
- - `notis auth status --verify --json`
69
-
70
-
71
34
  ## Apps
72
35
 
73
- ### `notis apps list`
36
+ ### `npx --package @notis_ai/cli@latest -- notis apps list`
74
37
 
75
38
  List apps the current profile can access.
76
39
 
77
40
  When to use: Discover existing apps before linking or deploying.
78
41
 
79
42
  Examples:
80
- - `notis apps list`
81
- - `notis apps list --json`
43
+ - `npx --package @notis_ai/cli@latest -- notis apps list`
44
+ - `npx --package @notis_ai/cli@latest -- notis apps list --json`
82
45
 
83
- ### `notis apps init <name> [dir]`
46
+ ### `npx --package @notis_ai/cli@latest -- notis apps init <name> [dir]`
84
47
 
85
48
  Scaffold a new Notis app project.
86
49
 
87
- When to use: Start a new Notis app. Creates a Next.js project with @notis/sdk pre-configured.
88
-
89
- Examples:
90
- - `notis apps init "Mind the Flo"`
91
- - `notis apps init "My App" ./my-app`
92
-
93
- ### `notis apps create <name> [dir]`
94
-
95
- Create a new remote Notis app and optionally link a local project to it.
96
-
97
- When to use: Provision a fresh remote app before the first deploy. Pass a project directory to link it immediately.
50
+ When to use: Start a new Notis app. Use --from with a bundled scaffold when one is close to the desired app; otherwise creates the bare Vite + React project.
98
51
 
99
52
  Options:
100
- - `--description <text>` — Optional app description.
101
- - `--icon <lucide:icon>` — Optional Lucide icon, for example lucide:dices.
53
+ - `--from <slug>` — Start from a bundled scaffold listed by `notis apps scaffolds list`.
102
54
 
103
55
  Examples:
104
- - `notis apps create "My App"`
105
- - `notis apps create "My App" . --description "Internal tool" --icon lucide:layout-dashboard`
56
+ - `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
57
+ - `npx --package @notis_ai/cli@latest -- notis apps init "Mind the Flo"`
58
+ - `npx --package @notis_ai/cli@latest -- notis apps init "My CRM" --from notis-database`
59
+ - `npx --package @notis_ai/cli@latest -- notis apps init "My App" ./my-app`
106
60
 
107
- ### `notis apps dev [dir]`
61
+ ### `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
108
62
 
109
- Run the Next.js dev server for local development.
63
+ List bundled Notis app scaffolds.
110
64
 
111
- When to use: Iterate on app UI with hot reload. SDK hooks return mock data.
65
+ When to use: Discover the fixed scaffold catalog shipped with the CLI before starting a new app.
112
66
 
113
67
  Examples:
114
- - `notis apps dev`
115
- - `notis apps dev ./my-app`
68
+ - `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
69
+ - `npx --package @notis_ai/cli@latest -- notis apps init "My App" --from notis-database`
116
70
 
117
- ### `notis apps build [dir]`
71
+ ### `npx --package @notis_ai/cli@latest -- notis apps create <name> [dir]`
118
72
 
119
- Build and package the app into .notis/output/.
73
+ Create a new remote Notis app and optionally link a local project to it.
120
74
 
121
- When to use: Prepare the app for preview or deployment.
75
+ When to use: Provision a fresh remote app before the first deploy. Pass a project directory to link it immediately.
122
76
 
123
77
  Examples:
124
- - `notis apps build`
125
- - `notis apps build ./my-app`
78
+ - `npx --package @notis_ai/cli@latest -- notis apps create "My App"`
79
+ - `npx --package @notis_ai/cli@latest -- notis apps create "My App" .`
126
80
 
127
- ### `notis apps preview [dir]`
81
+ ### `npx --package @notis_ai/cli@latest -- notis apps dev [dir]`
128
82
 
129
- Serve the built artifact locally for testing.
83
+ Develop Notis apps inside the Electron desktop Portal with automatic local bundle reloads.
130
84
 
131
- When to use: Smoke-test the exact artifact that will be deployed. Databases use seed data.
85
+ When to use: Run this inside a single app or a monorepo root with apps/<name>/notis.config.ts. It discovers every app, starts the local bundle server, registers desktop-local dev sessions, and opens the Electron Portal to the local development app.
132
86
 
133
87
  Options:
134
- - `--port <number>` — Server port (default: 8787).
88
+ - `--port <number>` — Local bundle server port (default: 5173).
89
+ - `--no-open` — Do not auto-open the desktop Portal local development app.
135
90
 
136
91
  Examples:
137
- - `notis apps preview`
138
- - `notis apps preview --port 3000`
92
+ - `npx --package @notis_ai/cli@latest -- notis apps dev`
93
+ - `npx --package @notis_ai/cli@latest -- notis apps dev ./my-app`
94
+ - `npx --package @notis_ai/cli@latest -- notis apps dev ./workspace --port 5200`
139
95
 
140
- ### `notis apps link <app-id> [dir]`
96
+ ### `npx --package @notis_ai/cli@latest -- notis apps build [dir]`
141
97
 
142
- Link a local project to a remote Notis app.
98
+ Build and package the app into .notis/output/.
143
99
 
144
- When to use: Connect a local project to an existing app for deployment.
100
+ When to use: Prepare the app for verification or deployment.
145
101
 
146
102
  Examples:
147
- - `notis apps link abc123`
148
- - `notis apps link abc123 ./my-app`
103
+ - `npx --package @notis_ai/cli@latest -- notis apps build`
104
+ - `npx --package @notis_ai/cli@latest -- notis apps build ./my-app`
149
105
 
150
- ### `notis apps deploy [dir]`
106
+ ### `npx --package @notis_ai/cli@latest -- notis apps verify [dir]`
151
107
 
152
- Build and upload the app to the linked Notis app.
108
+ Headless render smoke each route in a stub-runtime harness.
153
109
 
154
- When to use: Ship the installed app to production for the linked user/team app. Requires a linked app (notis apps link). This command does not publish to the app store.
110
+ When to use: After notis apps build, before deploy. Catches render-time crashes and missing runtime calls that the build step cannot detect.
155
111
 
156
112
  Options:
157
- - `--app-id <id>` — Override linked app ID.
158
- - `--skip-build`Skip the build step (use existing .notis/output/).
113
+ - `--routes <slugs>` — Comma-separated route slugs. Default: every route in manifest.
114
+ - `--port <n>` Loopback port. Default: auto-pick.
115
+ - `--skip-build` — Skip notis apps build; reuse existing .notis/output/.
116
+ - `--mode <mode>` — stub | live. Default stub. Live posts to /portal_views/runtime_query with the CLI JWT.
117
+ - `--no-browser` — Start the harness server and print URLs; do not drive agent-browser.
118
+ - `--keep-open` — Leave server + browser session running after report (for manual triage).
159
119
 
160
120
  Examples:
161
- - `notis apps deploy`
162
- - `notis apps deploy --skip-build`
163
- - `notis apps deploy --app-id abc123`
121
+ - `npx --package @notis_ai/cli@latest -- notis apps verify`
122
+ - `npx --package @notis_ai/cli@latest -- notis apps verify --routes notes`
123
+ - `npx --package @notis_ai/cli@latest -- notis apps verify --mode live`
124
+ - `npx --package @notis_ai/cli@latest -- notis apps verify --no-browser # start the harness, drive agent-browser yourself`
164
125
 
165
- ### `notis apps doctor [dir]`
126
+ ### `npx --package @notis_ai/cli@latest -- notis apps link <app-id> [dir]`
166
127
 
167
- Check project health and readiness.
128
+ Link a local project to a remote Notis app.
168
129
 
169
- When to use: Diagnose issues with a Notis app project.
130
+ When to use: Connect a local project to an existing app for deployment.
170
131
 
171
132
  Examples:
172
- - `notis apps doctor`
173
- - `notis apps doctor ./my-app`
174
-
133
+ - `npx --package @notis_ai/cli@latest -- notis apps link abc123`
134
+ - `npx --package @notis_ai/cli@latest -- notis apps link abc123 ./my-app`
175
135
 
176
- ## Databases
136
+ ### `npx --package @notis_ai/cli@latest -- notis apps pull <app-id> [dir]`
177
137
 
178
- ### `notis db list`
138
+ Download a Notis app source snapshot into a local project folder.
179
139
 
180
- List native Notis databases.
140
+ When to use: Edit an installed app locally. Pulls the persisted source, links the directory to the app/version, then continue with npm install, notis apps dev, notis apps build, and notis apps deploy.
181
141
 
182
- When to use: Use this to find database ids and slugs before querying or updating schemas.
142
+ Options:
143
+ - `--force` — Overwrite a non-empty target directory.
144
+ - `--version <n>` — Pull a specific app source version (default: latest).
183
145
 
184
146
  Examples:
185
- - `notis db list`
186
- - `notis db list --json`
147
+ - `npx --package @notis_ai/cli@latest -- notis apps pull abc123`
148
+ - `npx --package @notis_ai/cli@latest -- notis apps pull abc123 ./my-app --force`
187
149
 
188
- ### `notis db upsert`
150
+ ### `npx --package @notis_ai/cli@latest -- notis apps deploy [dir]`
189
151
 
190
- Create or update a native database schema.
152
+ Build and upload the app to the linked Notis app.
191
153
 
192
- When to use: Use this when you need to provision a new database or adjust an existing schema.
154
+ When to use: Ship the installed app to production for the linked user/team app. Requires a linked app (notis apps link). This command does not publish to the app store.
193
155
 
194
156
  Options:
195
- - `--operation <create|update>` — Create a new database or update an existing one.
196
- - `--database-id <id>` Database id for update operations.
197
- - `--title <text>` Database title.
198
- - `--description <text>` — Database description.
199
- - `--icon <lucide-icon-name>` — Database icon (Lucide icon name, e.g. database).
200
- - `--properties <json>` — JSON array of property definitions.
157
+ - `--app-id <id>` — Override linked app ID.
158
+ - `--skip-build`Skip the build step (use existing .notis/output/).
159
+ - `--direct`Upload directly to Supabase storage, bypassing the backend server. Auto-fallback on network errors.
201
160
 
202
161
  Examples:
203
- - `notis db upsert --operation create --title "Tasks"`
204
- - `notis db upsert --operation update --database-id db_123 --title "Tasks V2"`
205
-
206
- ### `notis db query <database-slug>`
162
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy`
163
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy --skip-build`
164
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy --app-id abc123`
165
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy --direct`
207
166
 
208
- Run a structured query against a native Notis database.
167
+ ### `npx --package @notis_ai/cli@latest -- notis apps doctor [dir]`
209
168
 
210
- When to use: Use this when the database slug is known and you need direct filters, sorts, or pagination.
169
+ Check project health and readiness.
211
170
 
212
- Options:
213
- - `--filter <json>` — Structured query filter JSON.
214
- - `--sort <json>` — Sort JSON object or array.
215
- - `--page-size <n>` — Page size between 1 and 100.
216
- - `--offset <n>` — Zero-based offset.
217
- - `--cursor <value>` — Pagination cursor alias for next_offset.
171
+ When to use: Diagnose issues with a Notis app project.
218
172
 
219
173
  Examples:
220
- - `notis db query tasks --page-size 50`
221
- - `notis db query tasks --filter '{"property":"Status"}'`
174
+ - `npx --package @notis_ai/cli@latest -- notis apps doctor`
175
+ - `npx --package @notis_ai/cli@latest -- notis apps doctor ./my-app`
222
176
 
223
177
 
224
178
  ## Generic Tools
225
179
 
226
- ### `notis tools toolkits`
180
+ ### `npx --package @notis_ai/cli@latest -- notis tools toolkits`
227
181
 
228
182
  List toolkit namespaces available to the active user.
229
183
 
230
184
  When to use: Use this before searching or executing generic tools.
231
185
 
232
186
  Examples:
233
- - `notis tools toolkits`
234
- - `notis tools toolkits --json`
187
+ - `npx --package @notis_ai/cli@latest -- notis tools toolkits`
188
+ - `npx --package @notis_ai/cli@latest -- notis tools toolkits --json`
235
189
 
236
- ### `notis tools search <query>`
190
+ ### `npx --package @notis_ai/cli@latest -- notis tools search <query>`
237
191
 
238
192
  Search across toolkit namespaces using natural language.
239
193
 
@@ -243,10 +197,10 @@ Options:
243
197
  - `--toolkits <csv-or-json>` — Optional subset of toolkit ids to search.
244
198
 
245
199
  Examples:
246
- - `notis tools search "send an email"`
247
- - `notis tools search "update framer page" --toolkits mcp-framer`
200
+ - `npx --package @notis_ai/cli@latest -- notis tools search "send an email"`
201
+ - `npx --package @notis_ai/cli@latest -- notis tools search "update framer page" --toolkits mcp-framer`
248
202
 
249
- ### `notis tools describe <tool-name>`
203
+ ### `npx --package @notis_ai/cli@latest -- notis tools describe <tool-name>`
250
204
 
251
205
  Describe a generic tool by name.
252
206
 
@@ -256,10 +210,10 @@ Options:
256
210
  - `--toolkits <csv-or-json>` — Optional subset of toolkit ids to search.
257
211
 
258
212
  Examples:
259
- - `notis tools describe composio-gmail-default-send_email`
260
- - `notis tools describe notis-default-query --toolkits notis-default`
213
+ - `npx --package @notis_ai/cli@latest -- notis tools describe composio-gmail-default-send_email`
214
+ - `npx --package @notis_ai/cli@latest -- notis tools describe notis-default-query --toolkits notis-default`
261
215
 
262
- ### `notis tools exec <tool-name>`
216
+ ### `npx --package @notis_ai/cli@latest -- notis tools exec <tool-name>`
263
217
 
264
218
  Execute a generic tool by canonical tool name.
265
219
 
@@ -269,63 +223,73 @@ Options:
269
223
  - `--arguments <json>` — JSON object, @file path, or - for stdin.
270
224
  - `--get-schema` — Display the tool parameter schema without executing.
271
225
  - `--dry-run` — Validate arguments against the tool schema without executing.
272
- - `--watch <seconds>` — Re-execute on an interval and stream results.
226
+ - `--toolkits <csv-or-json>` — Optional toolkit namespace(s) to use when resolving the tool.
273
227
 
274
228
  Examples:
275
- - `notis tools exec notis-default-query --arguments '{"database_slug":"tasks","query":{}}'`
276
- - `notis tools exec notis-default-query --get-schema`
277
- - `notis tools exec notis-default-query --dry-run --arguments '{"database_slug":"tasks","query":{}}'`
278
- - `notis tools exec notis-default-query --arguments @query.json`
279
- - `notis tools exec notis-default-query --arguments - < query.json`
280
- - `notis tools exec notis-default-query --watch 10 --arguments '{"database_slug":"tasks","query":{}}'`
229
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments '{"database_slug":"tasks","query":{}}'`
230
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-get_database --arguments '{"database_slug":"tasks"}'`
231
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --get-schema`
232
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --dry-run --arguments '{"database_slug":"tasks","query":{}}'`
233
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments @query.json`
234
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments - < query.json`
281
235
 
282
- ### `notis tools exec-parallel <calls>`
236
+ ### `npx --package @notis_ai/cli@latest -- notis tools exec-parallel <calls>`
283
237
 
284
238
  Execute multiple tools concurrently.
285
239
 
286
240
  When to use: Use this when you need to run independent tool calls simultaneously for speed.
287
241
 
288
242
  Examples:
289
- - `notis tools exec-parallel '[{"tool_name":"notis-default-query","arguments":{"database_slug":"tasks","query":{}}},{"tool_name":"notis-default-list_databases","arguments":{}}]'`
243
+ - `npx --package @notis_ai/cli@latest -- notis tools exec-parallel '[{"tool_name":"notis-default-query","arguments":{"database_slug":"tasks","query":{}}},{"tool_name":"notis-default-list_databases","arguments":{}}]'`
290
244
 
291
- ### `notis tools link <toolkit>`
245
+ ### `npx --package @notis_ai/cli@latest -- notis tools link <toolkit>`
292
246
 
293
247
  Get the URL to connect an integration toolkit.
294
248
 
295
249
  When to use: Use this when a tool requires authentication with an external service.
296
250
 
297
251
  Examples:
298
- - `notis tools link github`
299
- - `notis tools link gmail --json`
252
+ - `npx --package @notis_ai/cli@latest -- notis tools link github`
253
+ - `npx --package @notis_ai/cli@latest -- notis tools link gmail --json`
300
254
 
301
255
 
302
256
  ## Meta Commands
303
257
 
304
- ### `notis doctor`
258
+ ### `npx --package @notis_ai/cli@latest -- notis doctor`
305
259
 
306
260
  Run a quick CLI health check for config, auth, and API reachability.
307
261
 
308
262
  When to use: Use this before relying on the CLI in automation or after changing environments.
309
263
 
310
264
  Examples:
311
- - `notis doctor`
312
- - `notis doctor --json`
265
+ - `npx --package @notis_ai/cli@latest -- notis doctor`
266
+ - `npx --package @notis_ai/cli@latest -- notis doctor --json`
267
+
268
+ ### `npx --package @notis_ai/cli@latest -- notis whoami`
269
+
270
+ Display the active profile, user, and available toolkits.
271
+
272
+ When to use: Use this to quickly confirm which account and environment a command will target.
273
+
274
+ Examples:
275
+ - `npx --package @notis_ai/cli@latest -- notis whoami`
276
+ - `npx --package @notis_ai/cli@latest -- notis whoami --json`
313
277
 
314
- ### `notis describe <command...>`
278
+ ### `npx --package @notis_ai/cli@latest -- notis describe <command...>`
315
279
 
316
280
  Describe a first-class CLI command in detail.
317
281
 
318
282
  When to use: Use this when an agent or human needs the exact shape, examples, and semantics of a command.
319
283
 
320
284
  Examples:
321
- - `notis describe apps push`
322
- - `notis describe db query`
285
+ - `npx --package @notis_ai/cli@latest -- notis describe apps deploy`
286
+ - `npx --package @notis_ai/cli@latest -- notis describe tools exec`
323
287
 
324
288
 
325
289
  ## Local Development
326
290
 
327
291
  ```bash
328
- cd cli/npm
292
+ cd packages/cli
329
293
  npm install
330
294
  node ./bin/notis.js --help
331
295
  npm run docs:generate
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -0,0 +1,6 @@
1
+ import '@notis/sdk/styles.css';
2
+ import './globals.css';
3
+
4
+ export default function AppShell({ children }: { children: React.ReactNode }) {
5
+ return children;
6
+ }