@notis_ai/cli 0.2.0-beta.32.1 → 0.2.0-beta.41.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 +103 -163
- package/dist/scaffolds/notis-database/app/globals.css +44 -0
- package/dist/scaffolds/notis-database/app/layout.tsx +6 -0
- package/dist/scaffolds/notis-database/app/page.tsx +1091 -0
- package/dist/scaffolds/notis-database/components/ui/badge.tsx +28 -0
- package/dist/scaffolds/notis-database/components/ui/button.tsx +53 -0
- package/dist/scaffolds/notis-database/components/ui/card.tsx +56 -0
- package/dist/scaffolds/notis-database/components/ui/table.tsx +120 -0
- package/dist/scaffolds/notis-database/components.json +20 -0
- package/dist/scaffolds/notis-database/index.html +12 -0
- package/dist/scaffolds/notis-database/lib/types.ts +134 -0
- package/dist/scaffolds/notis-database/lib/utils.ts +6 -0
- package/dist/scaffolds/notis-database/metadata/cover.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-1.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-2.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-3.png +0 -0
- package/dist/scaffolds/notis-database/notis.config.ts +27 -0
- package/dist/scaffolds/notis-database/package.json +31 -0
- package/dist/scaffolds/notis-database/postcss.config.mjs +8 -0
- package/dist/scaffolds/notis-database/src/dev-main.tsx +23 -0
- package/dist/scaffolds/notis-database/src/mock-runtime.ts +557 -0
- package/dist/scaffolds/notis-database/tailwind.config.ts +59 -0
- package/dist/scaffolds/notis-database/tsconfig.json +23 -0
- package/dist/scaffolds/notis-database/vite.config.ts +22 -0
- package/dist/scaffolds/notis-notes/app/globals.css +3 -0
- package/dist/scaffolds/notis-notes/app/layout.tsx +6 -0
- package/dist/scaffolds/notis-notes/app/page.tsx +2168 -0
- package/dist/scaffolds/notis-notes/components/ui/badge.tsx +28 -0
- package/dist/scaffolds/notis-notes/components/ui/button.tsx +53 -0
- package/dist/scaffolds/notis-notes/components/ui/card.tsx +56 -0
- package/dist/scaffolds/notis-notes/components.json +20 -0
- package/dist/scaffolds/notis-notes/lib/utils.ts +6 -0
- package/dist/scaffolds/notis-notes/metadata/cover.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-1.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-2.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-3.png +0 -0
- package/dist/scaffolds/notis-notes/notis.config.ts +36 -0
- package/dist/scaffolds/notis-notes/package.json +31 -0
- package/dist/scaffolds/notis-notes/postcss.config.mjs +8 -0
- package/dist/scaffolds/notis-notes/tailwind.config.ts +58 -0
- package/dist/scaffolds/notis-notes/tsconfig.json +23 -0
- package/dist/scaffolds/notis-notes/vite.config.ts +10 -0
- package/dist/scaffolds/notis-random/README.md +33 -0
- package/dist/scaffolds/notis-random/app/globals.css +11 -0
- package/dist/scaffolds/notis-random/app/history/page.tsx +66 -0
- package/dist/scaffolds/notis-random/app/layout.tsx +7 -0
- package/dist/scaffolds/notis-random/app/page.tsx +222 -0
- package/dist/scaffolds/notis-random/index.html +12 -0
- package/dist/scaffolds/notis-random/lib/notis-tools.ts +109 -0
- package/dist/scaffolds/notis-random/lib/rng.ts +42 -0
- package/dist/scaffolds/notis-random/lib/roll-record.ts +102 -0
- package/dist/scaffolds/notis-random/lib/utils.ts +25 -0
- package/dist/scaffolds/notis-random/metadata/cover.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-1.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-2.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-3.png +0 -0
- package/dist/scaffolds/notis-random/notis.config.ts +43 -0
- package/dist/scaffolds/notis-random/package.json +32 -0
- package/dist/scaffolds/notis-random/postcss.config.mjs +6 -0
- package/dist/scaffolds/notis-random/src/dev-main.tsx +70 -0
- package/dist/scaffolds/notis-random/src/mock-runtime.ts +128 -0
- package/dist/scaffolds/notis-random/tailwind.config.ts +43 -0
- package/dist/scaffolds/notis-random/tsconfig.json +23 -0
- package/dist/scaffolds/notis-random/vite.config.ts +11 -0
- package/dist/scaffolds.json +36 -0
- package/package.json +7 -3
- package/skills/notis-apps/SKILL.md +162 -0
- package/skills/notis-apps/cli.md +208 -0
- package/skills/notis-cli/SKILL.md +258 -0
- package/skills/notis-query/cli.md +40 -0
- package/src/cli.js +11 -2
- package/src/command-specs/apps.js +211 -46
- package/src/command-specs/helpers.js +2 -60
- package/src/command-specs/index.js +0 -6
- package/src/command-specs/meta.js +7 -6
- package/src/command-specs/tools.js +101 -35
- package/src/runtime/app-dev-server.js +32 -4
- package/src/runtime/app-platform.js +404 -24
- package/src/runtime/profiles.js +2 -2
- package/src/runtime/transport.js +131 -19
- package/template/.harness/index.html.tmpl +1 -50
- package/template/app/page.tsx +41 -6
- package/template/metadata/cover.png +0 -0
- package/template/metadata/screenshot-1.png +0 -0
- package/template/metadata/screenshot-2.png +0 -0
- package/template/metadata/screenshot-3.png +0 -0
- package/template/notis.config.ts +10 -6
- package/template/package.json +2 -2
- package/template/packages/{notis-sdk → sdk}/package.json +6 -0
- package/template/packages/{notis-sdk → sdk}/src/components/MultiSelectActionBar.tsx +2 -1
- package/template/packages/{notis-sdk → sdk}/src/components/MultiSelectCheckbox.tsx +2 -2
- package/template/packages/{notis-sdk → sdk}/src/components/MultiSelectDragOverlay.tsx +2 -2
- package/template/packages/{notis-sdk → sdk}/src/config.ts +1 -1
- package/template/packages/{notis-sdk → sdk}/src/hooks/useDatabase.ts +1 -13
- package/template/packages/{notis-sdk → sdk}/src/hooks/useMultiSelect.ts +4 -3
- package/template/packages/{notis-sdk → sdk}/src/hooks/useNotis.ts +4 -3
- package/template/packages/{notis-sdk → sdk}/src/hooks/useNotisNavigation.ts +3 -3
- package/template/packages/{notis-sdk → sdk}/src/hooks/useTool.ts +22 -7
- package/template/packages/{notis-sdk → sdk}/src/hooks/useUpsertDocument.ts +0 -8
- package/template/packages/{notis-sdk → sdk}/src/index.ts +2 -15
- package/template/packages/{notis-sdk → sdk}/src/provider.tsx +1 -1
- package/template/packages/{notis-sdk → sdk}/src/runtime.ts +5 -26
- package/src/command-specs/auth.js +0 -178
- package/src/command-specs/db.js +0 -163
- package/template/packages/notis-sdk/src/helpers.ts +0 -131
- package/template/packages/notis-sdk/src/hooks/useAppState.ts +0 -50
- package/template/packages/notis-sdk/src/hooks/useCollectionItem.ts +0 -58
- package/template/packages/notis-sdk/src/hooks/useDocument.ts +0 -61
- /package/template/packages/{notis-sdk → sdk}/src/hooks/useBackend.ts +0 -0
- /package/template/packages/{notis-sdk → sdk}/src/hooks/useTools.ts +0 -0
- /package/template/packages/{notis-sdk → sdk}/src/hooks/useTopBarSearch.ts +0 -0
- /package/template/packages/{notis-sdk → sdk}/src/styles.css +0 -0
- /package/template/packages/{notis-sdk → sdk}/src/ui.ts +0 -0
- /package/template/packages/{notis-sdk → sdk}/src/vite.ts +0 -0
- /package/template/packages/{notis-sdk → sdk}/tsconfig.json +0 -0
package/README.md
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# @notis_ai/cli
|
|
2
2
|
|
|
3
|
-
Agent-first Notis CLI for apps
|
|
3
|
+
Agent-first Notis CLI for apps and generic tool execution.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
|
-
|
|
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
|
|
14
|
-
notis apps list
|
|
15
|
-
notis
|
|
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
|
-
|
|
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,107 +31,79 @@ 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
|
-
##
|
|
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`
|
|
34
|
+
## Apps
|
|
46
35
|
|
|
47
|
-
### `notis
|
|
36
|
+
### `npx --package @notis_ai/cli@latest -- notis apps list`
|
|
48
37
|
|
|
49
|
-
|
|
38
|
+
List apps the current profile can access.
|
|
50
39
|
|
|
51
|
-
When to use:
|
|
40
|
+
When to use: Discover existing apps before linking or deploying.
|
|
52
41
|
|
|
53
42
|
Examples:
|
|
54
|
-
- `notis
|
|
55
|
-
- `notis
|
|
43
|
+
- `npx --package @notis_ai/cli@latest -- notis apps list`
|
|
44
|
+
- `npx --package @notis_ai/cli@latest -- notis apps list --json`
|
|
56
45
|
|
|
57
|
-
### `notis
|
|
46
|
+
### `npx --package @notis_ai/cli@latest -- notis apps init <name> [dir]`
|
|
58
47
|
|
|
59
|
-
|
|
48
|
+
Scaffold a new Notis app project.
|
|
60
49
|
|
|
61
|
-
When to use: Use
|
|
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.
|
|
62
51
|
|
|
63
52
|
Options:
|
|
64
|
-
- `--
|
|
53
|
+
- `--from <slug>` — Start from a bundled scaffold listed by `notis apps scaffolds list`.
|
|
65
54
|
|
|
66
55
|
Examples:
|
|
67
|
-
- `notis
|
|
68
|
-
- `
|
|
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`
|
|
69
60
|
|
|
61
|
+
### `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
|
|
70
62
|
|
|
71
|
-
|
|
63
|
+
List bundled Notis app scaffolds.
|
|
72
64
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
List apps the current profile can access.
|
|
76
|
-
|
|
77
|
-
When to use: Discover existing apps before linking or deploying.
|
|
65
|
+
When to use: Discover the fixed scaffold catalog shipped with the CLI before starting a new app.
|
|
78
66
|
|
|
79
67
|
Examples:
|
|
80
|
-
- `notis apps list`
|
|
81
|
-
- `notis apps
|
|
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`
|
|
82
70
|
|
|
83
|
-
### `notis apps
|
|
84
|
-
|
|
85
|
-
Scaffold a new Notis app project.
|
|
86
|
-
|
|
87
|
-
When to use: Start a new Notis app. Creates a Vite + React 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]`
|
|
71
|
+
### `npx --package @notis_ai/cli@latest -- notis apps create <name> [dir]`
|
|
94
72
|
|
|
95
73
|
Create a new remote Notis app and optionally link a local project to it.
|
|
96
74
|
|
|
97
75
|
When to use: Provision a fresh remote app before the first deploy. Pass a project directory to link it immediately.
|
|
98
76
|
|
|
99
|
-
Options:
|
|
100
|
-
- `--description <text>` — Optional app description.
|
|
101
|
-
- `--icon <lucide:icon>` — Optional Lucide icon, for example lucide:dices.
|
|
102
|
-
|
|
103
77
|
Examples:
|
|
104
|
-
- `notis apps create "My App"`
|
|
105
|
-
- `notis apps create "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" .`
|
|
106
80
|
|
|
107
|
-
### `notis apps dev [dir]`
|
|
81
|
+
### `npx --package @notis_ai/cli@latest -- notis apps dev [dir]`
|
|
108
82
|
|
|
109
83
|
Develop Notis apps inside the Electron desktop Portal with automatic local bundle reloads.
|
|
110
84
|
|
|
111
|
-
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
|
|
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.
|
|
112
86
|
|
|
113
87
|
Options:
|
|
114
88
|
- `--port <number>` — Local bundle server port (default: 5173).
|
|
115
|
-
- `--no-open` — Do not auto-open the desktop Portal
|
|
89
|
+
- `--no-open` — Do not auto-open the desktop Portal local development app.
|
|
116
90
|
|
|
117
91
|
Examples:
|
|
118
|
-
- `notis apps dev`
|
|
119
|
-
- `notis apps dev ./my-app`
|
|
120
|
-
- `notis apps dev ./workspace --port 5200`
|
|
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`
|
|
121
95
|
|
|
122
|
-
### `notis apps build [dir]`
|
|
96
|
+
### `npx --package @notis_ai/cli@latest -- notis apps build [dir]`
|
|
123
97
|
|
|
124
98
|
Build and package the app into .notis/output/.
|
|
125
99
|
|
|
126
100
|
When to use: Prepare the app for verification or deployment.
|
|
127
101
|
|
|
128
102
|
Examples:
|
|
129
|
-
- `notis apps build`
|
|
130
|
-
- `notis apps build ./my-app`
|
|
103
|
+
- `npx --package @notis_ai/cli@latest -- notis apps build`
|
|
104
|
+
- `npx --package @notis_ai/cli@latest -- notis apps build ./my-app`
|
|
131
105
|
|
|
132
|
-
### `notis apps verify [dir]`
|
|
106
|
+
### `npx --package @notis_ai/cli@latest -- notis apps verify [dir]`
|
|
133
107
|
|
|
134
108
|
Headless render smoke each route in a stub-runtime harness.
|
|
135
109
|
|
|
@@ -144,36 +118,36 @@ Options:
|
|
|
144
118
|
- `--keep-open` — Leave server + browser session running after report (for manual triage).
|
|
145
119
|
|
|
146
120
|
Examples:
|
|
147
|
-
- `notis apps verify`
|
|
148
|
-
- `notis apps verify --routes notes`
|
|
149
|
-
- `notis apps verify --mode live`
|
|
150
|
-
- `notis apps verify --no-browser # start the harness, drive agent-browser yourself`
|
|
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`
|
|
151
125
|
|
|
152
|
-
### `notis apps link <app-id> [dir]`
|
|
126
|
+
### `npx --package @notis_ai/cli@latest -- notis apps link <app-id> [dir]`
|
|
153
127
|
|
|
154
128
|
Link a local project to a remote Notis app.
|
|
155
129
|
|
|
156
130
|
When to use: Connect a local project to an existing app for deployment.
|
|
157
131
|
|
|
158
132
|
Examples:
|
|
159
|
-
- `notis apps link abc123`
|
|
160
|
-
- `notis apps link abc123 ./my-app`
|
|
133
|
+
- `npx --package @notis_ai/cli@latest -- notis apps link abc123`
|
|
134
|
+
- `npx --package @notis_ai/cli@latest -- notis apps link abc123 ./my-app`
|
|
161
135
|
|
|
162
|
-
### `notis apps pull <app-id> [dir]`
|
|
136
|
+
### `npx --package @notis_ai/cli@latest -- notis apps pull <app-id> [dir]`
|
|
163
137
|
|
|
164
138
|
Download a Notis app source snapshot into a local project folder.
|
|
165
139
|
|
|
166
|
-
When to use: Edit an installed app locally. Pulls the persisted source
|
|
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.
|
|
167
141
|
|
|
168
142
|
Options:
|
|
169
143
|
- `--force` — Overwrite a non-empty target directory.
|
|
170
144
|
- `--version <n>` — Pull a specific app source version (default: latest).
|
|
171
145
|
|
|
172
146
|
Examples:
|
|
173
|
-
- `notis apps pull abc123`
|
|
174
|
-
- `notis apps pull abc123 ./my-app --force`
|
|
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`
|
|
175
149
|
|
|
176
|
-
### `notis apps deploy [dir]`
|
|
150
|
+
### `npx --package @notis_ai/cli@latest -- notis apps deploy [dir]`
|
|
177
151
|
|
|
178
152
|
Build and upload the app to the linked Notis app.
|
|
179
153
|
|
|
@@ -185,83 +159,35 @@ Options:
|
|
|
185
159
|
- `--direct` — Upload directly to Supabase storage, bypassing the backend server. Auto-fallback on network errors.
|
|
186
160
|
|
|
187
161
|
Examples:
|
|
188
|
-
- `notis apps deploy`
|
|
189
|
-
- `notis apps deploy --skip-build`
|
|
190
|
-
- `notis apps deploy --app-id abc123`
|
|
191
|
-
- `notis apps deploy --direct`
|
|
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`
|
|
192
166
|
|
|
193
|
-
### `notis apps doctor [dir]`
|
|
167
|
+
### `npx --package @notis_ai/cli@latest -- notis apps doctor [dir]`
|
|
194
168
|
|
|
195
169
|
Check project health and readiness.
|
|
196
170
|
|
|
197
171
|
When to use: Diagnose issues with a Notis app project.
|
|
198
172
|
|
|
199
173
|
Examples:
|
|
200
|
-
- `notis apps doctor`
|
|
201
|
-
- `notis apps doctor ./my-app`
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
## Databases
|
|
205
|
-
|
|
206
|
-
### `notis db list`
|
|
207
|
-
|
|
208
|
-
List native Notis databases.
|
|
209
|
-
|
|
210
|
-
When to use: Use this to find database ids and slugs before querying or updating schemas.
|
|
211
|
-
|
|
212
|
-
Examples:
|
|
213
|
-
- `notis db list`
|
|
214
|
-
- `notis db list --json`
|
|
215
|
-
|
|
216
|
-
### `notis db upsert`
|
|
217
|
-
|
|
218
|
-
Create or update a native database schema.
|
|
219
|
-
|
|
220
|
-
When to use: Use this when you need to provision a new database or adjust an existing schema.
|
|
221
|
-
|
|
222
|
-
Options:
|
|
223
|
-
- `--operation <create|update>` — Create a new database or update an existing one.
|
|
224
|
-
- `--database-id <id>` — Database id for update operations.
|
|
225
|
-
- `--title <text>` — Database title.
|
|
226
|
-
- `--description <text>` — Database description.
|
|
227
|
-
- `--icon <lucide-icon-name>` — Database icon (Lucide icon name, e.g. database).
|
|
228
|
-
- `--properties <json>` — JSON array of property definitions.
|
|
229
|
-
|
|
230
|
-
Examples:
|
|
231
|
-
- `notis db upsert --operation create --title "Tasks"`
|
|
232
|
-
- `notis db upsert --operation update --database-id db_123 --title "Tasks V2"`
|
|
233
|
-
|
|
234
|
-
### `notis db query <database-slug>`
|
|
235
|
-
|
|
236
|
-
Run a structured query against a native Notis database.
|
|
237
|
-
|
|
238
|
-
When to use: Use this when the database slug is known and you need direct filters, sorts, or pagination.
|
|
239
|
-
|
|
240
|
-
Options:
|
|
241
|
-
- `--filter <json>` — Structured query filter JSON.
|
|
242
|
-
- `--sort <json>` — Sort JSON object or array.
|
|
243
|
-
- `--page-size <n>` — Page size between 1 and 100.
|
|
244
|
-
- `--offset <n>` — Zero-based offset.
|
|
245
|
-
- `--cursor <value>` — Pagination cursor alias for next_offset.
|
|
246
|
-
|
|
247
|
-
Examples:
|
|
248
|
-
- `notis db query tasks --page-size 50`
|
|
249
|
-
- `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`
|
|
250
176
|
|
|
251
177
|
|
|
252
178
|
## Generic Tools
|
|
253
179
|
|
|
254
|
-
### `notis tools toolkits`
|
|
180
|
+
### `npx --package @notis_ai/cli@latest -- notis tools toolkits`
|
|
255
181
|
|
|
256
182
|
List toolkit namespaces available to the active user.
|
|
257
183
|
|
|
258
184
|
When to use: Use this before searching or executing generic tools.
|
|
259
185
|
|
|
260
186
|
Examples:
|
|
261
|
-
- `notis tools toolkits`
|
|
262
|
-
- `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`
|
|
263
189
|
|
|
264
|
-
### `notis tools search <query>`
|
|
190
|
+
### `npx --package @notis_ai/cli@latest -- notis tools search <query>`
|
|
265
191
|
|
|
266
192
|
Search across toolkit namespaces using natural language.
|
|
267
193
|
|
|
@@ -271,10 +197,10 @@ Options:
|
|
|
271
197
|
- `--toolkits <csv-or-json>` — Optional subset of toolkit ids to search.
|
|
272
198
|
|
|
273
199
|
Examples:
|
|
274
|
-
- `notis tools search "send an email"`
|
|
275
|
-
- `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`
|
|
276
202
|
|
|
277
|
-
### `notis tools describe <tool-name>`
|
|
203
|
+
### `npx --package @notis_ai/cli@latest -- notis tools describe <tool-name>`
|
|
278
204
|
|
|
279
205
|
Describe a generic tool by name.
|
|
280
206
|
|
|
@@ -284,10 +210,10 @@ Options:
|
|
|
284
210
|
- `--toolkits <csv-or-json>` — Optional subset of toolkit ids to search.
|
|
285
211
|
|
|
286
212
|
Examples:
|
|
287
|
-
- `notis tools describe composio-gmail-default-send_email`
|
|
288
|
-
- `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`
|
|
289
215
|
|
|
290
|
-
### `notis tools exec <tool-name>`
|
|
216
|
+
### `npx --package @notis_ai/cli@latest -- notis tools exec <tool-name>`
|
|
291
217
|
|
|
292
218
|
Execute a generic tool by canonical tool name.
|
|
293
219
|
|
|
@@ -295,66 +221,80 @@ When to use: Use this as the escape hatch for integrations or Notis tools withou
|
|
|
295
221
|
|
|
296
222
|
Options:
|
|
297
223
|
- `--arguments <json>` — JSON object, @file path, or - for stdin.
|
|
224
|
+
- `--file <argument-path=local-path>` — Upload a local file into a file-uploadable tool argument. Repeatable.
|
|
298
225
|
- `--get-schema` — Display the tool parameter schema without executing.
|
|
299
226
|
- `--dry-run` — Validate arguments against the tool schema without executing.
|
|
300
|
-
- `--watch <seconds>` — Re-execute on an interval and stream results.
|
|
301
227
|
- `--toolkits <csv-or-json>` — Optional toolkit namespace(s) to use when resolving the tool.
|
|
302
228
|
|
|
303
229
|
Examples:
|
|
304
|
-
- `notis tools exec notis-default-query --arguments '{"database_slug":"tasks","query":{}}'`
|
|
305
|
-
- `notis tools exec notis-default-
|
|
306
|
-
- `notis tools exec notis-default-query --
|
|
307
|
-
- `notis tools exec notis-default-query --arguments
|
|
308
|
-
- `notis tools exec notis-default-query --arguments
|
|
309
|
-
- `notis tools exec notis-default-query --
|
|
230
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments '{"database_slug":"tasks","query":{}}'`
|
|
231
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-get_database --arguments '{"database_slug":"tasks"}'`
|
|
232
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --get-schema`
|
|
233
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --dry-run --arguments '{"database_slug":"tasks","query":{}}'`
|
|
234
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments @query.json`
|
|
235
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments - < query.json`
|
|
236
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec composio-dropbox-default-upload_file --arguments '{"path":"/target/in/dropbox.pdf"}' --file content=./Invoice.pdf`
|
|
310
237
|
|
|
311
|
-
### `notis tools exec-parallel <calls>`
|
|
238
|
+
### `npx --package @notis_ai/cli@latest -- notis tools exec-parallel <calls>`
|
|
312
239
|
|
|
313
240
|
Execute multiple tools concurrently.
|
|
314
241
|
|
|
315
242
|
When to use: Use this when you need to run independent tool calls simultaneously for speed.
|
|
316
243
|
|
|
244
|
+
Options:
|
|
245
|
+
- `--file <argument-path=local-path>` — Unsupported for exec-parallel; use tools exec for file uploads.
|
|
246
|
+
|
|
317
247
|
Examples:
|
|
318
|
-
- `notis tools exec-parallel '[{"tool_name":"notis-default-query","arguments":{"database_slug":"tasks","query":{}}},{"tool_name":"notis-default-list_databases","arguments":{}}]'`
|
|
248
|
+
- `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":{}}]'`
|
|
319
249
|
|
|
320
|
-
### `notis tools link <toolkit>`
|
|
250
|
+
### `npx --package @notis_ai/cli@latest -- notis tools link <toolkit>`
|
|
321
251
|
|
|
322
252
|
Get the URL to connect an integration toolkit.
|
|
323
253
|
|
|
324
254
|
When to use: Use this when a tool requires authentication with an external service.
|
|
325
255
|
|
|
326
256
|
Examples:
|
|
327
|
-
- `notis tools link github`
|
|
328
|
-
- `notis tools link gmail --json`
|
|
257
|
+
- `npx --package @notis_ai/cli@latest -- notis tools link github`
|
|
258
|
+
- `npx --package @notis_ai/cli@latest -- notis tools link gmail --json`
|
|
329
259
|
|
|
330
260
|
|
|
331
261
|
## Meta Commands
|
|
332
262
|
|
|
333
|
-
### `notis doctor`
|
|
263
|
+
### `npx --package @notis_ai/cli@latest -- notis doctor`
|
|
334
264
|
|
|
335
265
|
Run a quick CLI health check for config, auth, and API reachability.
|
|
336
266
|
|
|
337
267
|
When to use: Use this before relying on the CLI in automation or after changing environments.
|
|
338
268
|
|
|
339
269
|
Examples:
|
|
340
|
-
- `notis doctor`
|
|
341
|
-
- `notis doctor --json`
|
|
270
|
+
- `npx --package @notis_ai/cli@latest -- notis doctor`
|
|
271
|
+
- `npx --package @notis_ai/cli@latest -- notis doctor --json`
|
|
272
|
+
|
|
273
|
+
### `npx --package @notis_ai/cli@latest -- notis whoami`
|
|
274
|
+
|
|
275
|
+
Display the active profile, user, and available toolkits.
|
|
276
|
+
|
|
277
|
+
When to use: Use this to quickly confirm which account and environment a command will target.
|
|
278
|
+
|
|
279
|
+
Examples:
|
|
280
|
+
- `npx --package @notis_ai/cli@latest -- notis whoami`
|
|
281
|
+
- `npx --package @notis_ai/cli@latest -- notis whoami --json`
|
|
342
282
|
|
|
343
|
-
### `notis describe <command...>`
|
|
283
|
+
### `npx --package @notis_ai/cli@latest -- notis describe <command...>`
|
|
344
284
|
|
|
345
285
|
Describe a first-class CLI command in detail.
|
|
346
286
|
|
|
347
287
|
When to use: Use this when an agent or human needs the exact shape, examples, and semantics of a command.
|
|
348
288
|
|
|
349
289
|
Examples:
|
|
350
|
-
- `notis describe apps
|
|
351
|
-
- `notis describe
|
|
290
|
+
- `npx --package @notis_ai/cli@latest -- notis describe apps deploy`
|
|
291
|
+
- `npx --package @notis_ai/cli@latest -- notis describe tools exec`
|
|
352
292
|
|
|
353
293
|
|
|
354
294
|
## Local Development
|
|
355
295
|
|
|
356
296
|
```bash
|
|
357
|
-
cd cli
|
|
297
|
+
cd packages/cli
|
|
358
298
|
npm install
|
|
359
299
|
node ./bin/notis.js --help
|
|
360
300
|
npm run docs:generate
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
* The portal mounts the app inside [data-notis-app-root] (display: block,
|
|
7
|
+
* min-height: 100% from @notis/sdk/styles.css). Width 100% ensures the
|
|
8
|
+
* two-pane layout can stretch to the full content area; height stays on
|
|
9
|
+
* the SDK's min-height: 100% default so the page can grow with content.
|
|
10
|
+
* The page itself uses `h-screen` to guarantee a fixed viewport height
|
|
11
|
+
* for the two-pane divider and centered empty states.
|
|
12
|
+
*/
|
|
13
|
+
[data-notis-app-root] {
|
|
14
|
+
width: 100%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Dev-preview fallback tokens. Active only when the dev entrypoint sets the
|
|
19
|
+
* data-dev-preview attribute. Production bundle runs inside the portal
|
|
20
|
+
* shadow root where the host injects real theme tokens, so this rule is
|
|
21
|
+
* scoped narrowly enough to never collide with portal-provided values.
|
|
22
|
+
*/
|
|
23
|
+
[data-dev-preview] {
|
|
24
|
+
--background: 0 0% 100%;
|
|
25
|
+
--foreground: 0 0% 4%;
|
|
26
|
+
--card: 0 0% 100%;
|
|
27
|
+
--card-foreground: 0 0% 4%;
|
|
28
|
+
--popover: 0 0% 100%;
|
|
29
|
+
--popover-foreground: 0 0% 4%;
|
|
30
|
+
--primary: 0 0% 9%;
|
|
31
|
+
--primary-foreground: 0 0% 98%;
|
|
32
|
+
--secondary: 240 5% 96%;
|
|
33
|
+
--secondary-foreground: 0 0% 9%;
|
|
34
|
+
--muted: 240 5% 96%;
|
|
35
|
+
--muted-foreground: 240 4% 46%;
|
|
36
|
+
--accent: 240 5% 96%;
|
|
37
|
+
--accent-foreground: 0 0% 9%;
|
|
38
|
+
--destructive: 0 84% 60%;
|
|
39
|
+
--destructive-foreground: 0 0% 98%;
|
|
40
|
+
--border: 240 6% 90%;
|
|
41
|
+
--input: 240 6% 90%;
|
|
42
|
+
--ring: 0 0% 4%;
|
|
43
|
+
--radius: 0.5rem;
|
|
44
|
+
}
|