@notis_ai/cli 0.2.0-beta.16.1 → 0.2.0-beta.161.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 +435 -133
- package/bin/check-runtime.js +15 -0
- package/bin/notis.js +2 -0
- package/config/notis_app_boundary_rules.json +50 -0
- package/config/notis_app_design_rules.json +135 -0
- package/dist/agent-hooks/notis-agent-hook.mjs +19008 -0
- package/dist/base-skills/notis-apps/SKILL.md +70 -0
- package/dist/base-skills/notis-apps/references/architecture.md +164 -0
- package/dist/base-skills/notis-apps/references/context.md +81 -0
- package/dist/base-skills/notis-apps/references/design.md +165 -0
- package/dist/base-skills/notis-apps/references/reading.md +89 -0
- package/dist/base-skills/notis-apps/references/release.md +99 -0
- package/dist/base-skills/notis-apps/references/sdk.md +62 -0
- package/dist/base-skills/notis-apps/references/troubleshooting.md +23 -0
- package/dist/base-skills/notis-cli/SKILL.md +140 -0
- package/dist/base-skills/notis-cli/references/app-delivery.md +18 -0
- package/dist/base-skills/notis-cli/references/native-databases.md +20 -0
- package/dist/base-skills/notis-cli/references/tool-examples.md +56 -0
- package/dist/base-skills/notis-cli/references/troubleshooting.md +39 -0
- package/dist/base-skills/notis-query/SKILL.md +67 -0
- package/dist/base-skills/notis-query/references/database-discovery.md +59 -0
- package/dist/base-skills/notis-query/references/documents.md +50 -0
- package/dist/base-skills/notis-query/references/query.md +543 -0
- package/dist/skill-sync/index.js +1626 -0
- package/dist/skill-sync/index.js.map +7 -0
- package/dist/skill-sync-worker.mjs +2990 -0
- package/package.json +18 -7
- package/skills/notis-apps/cli.md +313 -0
- package/skills/notis-cli/AGENT_INSTRUCTIONS.md +39 -0
- package/skills/notis-onboarding/BRIEF.md +129 -0
- package/skills/notis-query/cli.md +39 -0
- package/src/agent-hook-entry.js +5 -0
- package/src/cli.js +294 -25
- package/src/command-specs/agents.js +392 -0
- package/src/command-specs/apps.js +1470 -202
- package/src/command-specs/auth.js +114 -137
- package/src/command-specs/diagnostics.js +729 -0
- package/src/command-specs/handover.js +374 -0
- package/src/command-specs/helpers.js +84 -82
- package/src/command-specs/index.js +25 -6
- package/src/command-specs/meta.js +150 -18
- package/src/command-specs/onboarding.js +290 -0
- package/src/command-specs/profile.js +358 -0
- package/src/command-specs/reports.js +86 -0
- package/src/command-specs/skills.js +75 -0
- package/src/command-specs/smoke.js +386 -0
- package/src/command-specs/tools.js +455 -139
- package/src/runtime/agent-browser.js +632 -0
- package/src/runtime/agent-memory-state.js +126 -0
- package/src/runtime/agent-setup.js +383 -0
- package/src/runtime/app-boundary-validator.js +404 -0
- package/src/runtime/app-changelog.js +79 -0
- package/src/runtime/app-platform.js +2633 -210
- package/src/runtime/app-registry-scaffolds.js +367 -0
- package/src/runtime/app-test-server.js +292 -0
- package/src/runtime/assets/store-screenshot-dark.png +0 -0
- package/src/runtime/auth-recovery.js +110 -0
- package/src/runtime/base-skills.d.ts +20 -0
- package/src/runtime/base-skills.js +167 -0
- package/src/runtime/channel.js +133 -0
- package/src/runtime/delegated-context.js +68 -0
- package/src/runtime/errors.js +1 -0
- package/src/runtime/git.js +233 -0
- package/src/runtime/login-listener.js +15 -0
- package/src/runtime/oauth.js +2622 -0
- package/src/runtime/output.js +37 -5
- package/src/runtime/ports.js +31 -0
- package/src/runtime/profiles.js +906 -55
- package/src/runtime/skill-sync/cloud-client.ts +99 -0
- package/src/runtime/skill-sync/index.ts +697 -0
- package/src/runtime/skill-sync/local-scanner.ts +1046 -0
- package/src/runtime/skill-sync/symlink-manager.ts +433 -0
- package/src/runtime/skill-sync/sync-plan.ts +22 -0
- package/src/runtime/skill-sync/types.ts +110 -0
- package/src/runtime/skill-sync/write-cloud-skill.ts +50 -0
- package/src/runtime/skill-sync-service.js +109 -0
- package/src/runtime/store-screenshot.js +143 -0
- package/src/runtime/sync-skills.d.ts +37 -0
- package/src/runtime/sync-skills.js +231 -0
- package/src/runtime/telemetry.js +92 -0
- package/src/runtime/transport.js +324 -45
- package/src/skill-sync-worker-entry.js +2 -0
- package/src/skill-sync-worker.js +50 -0
- package/template/.harness/index.html.tmpl +430 -0
- package/template/CHANGELOG.md +5 -0
- package/template/app/globals.css +28 -3
- package/template/app/layout.tsx +6 -3
- package/template/app/page.tsx +49 -42
- package/template/components/page-heading.tsx +23 -0
- package/template/components/ui/badge.tsx +7 -4
- package/template/components/ui/button.tsx +1 -1
- package/template/components/ui/card.tsx +24 -11
- package/template/components/ui/native-select.tsx +24 -0
- package/template/notis.config.ts +24 -6
- package/template/package-lock.json +3642 -0
- package/template/package.json +19 -16
- package/template/packages/{notis-sdk → sdk}/package.json +14 -4
- package/template/packages/sdk/src/agentContext.ts +36 -0
- package/template/packages/sdk/src/components/DocumentEditor.tsx +103 -0
- package/template/packages/sdk/src/components/Markdown.tsx +60 -0
- package/template/packages/sdk/src/components/MarkdownEditor.tsx +121 -0
- package/template/packages/sdk/src/components/MultiSelectActionBar.tsx +285 -0
- package/template/packages/sdk/src/components/MultiSelectCheckbox.tsx +97 -0
- package/template/packages/sdk/src/components/MultiSelectDragOverlay.tsx +39 -0
- package/template/packages/sdk/src/components/NotisCommentBoundary.tsx +172 -0
- package/template/packages/sdk/src/components/NotisSelectionBoundary.tsx +59 -0
- package/template/packages/sdk/src/components/ShortcutHints.tsx +56 -0
- package/template/packages/sdk/src/components/Skeleton.tsx +24 -0
- package/template/packages/sdk/src/config.ts +257 -0
- package/template/packages/sdk/src/documents.ts +256 -0
- package/template/packages/sdk/src/hooks/useActiveResource.ts +19 -0
- package/template/packages/sdk/src/hooks/useAgentContext.ts +23 -0
- package/template/packages/sdk/src/hooks/useCloudComputer.ts +64 -0
- package/template/packages/sdk/src/hooks/useCollectionInteractions.ts +836 -0
- package/template/packages/sdk/src/hooks/useDatabaseSchema.ts +49 -0
- package/template/packages/sdk/src/hooks/useDatabaseSubscription.ts +76 -0
- package/template/packages/sdk/src/hooks/useDocument.ts +43 -0
- package/template/packages/sdk/src/hooks/useDocuments.ts +84 -0
- package/template/packages/sdk/src/hooks/useHandover.ts +78 -0
- package/template/packages/sdk/src/hooks/useLongPressSelection.ts +79 -0
- package/template/packages/sdk/src/hooks/useMultiSelect.ts +95 -0
- package/template/packages/{notis-sdk → sdk}/src/hooks/useNotis.ts +10 -4
- package/template/packages/{notis-sdk → sdk}/src/hooks/useNotisNavigation.ts +11 -8
- package/template/packages/sdk/src/hooks/useQuery.ts +71 -0
- package/template/packages/sdk/src/hooks/useTool.ts +65 -0
- package/template/packages/sdk/src/hooks/useToolQuery.ts +12 -0
- package/template/packages/sdk/src/hooks/useTopBarSearch.ts +81 -0
- package/template/packages/sdk/src/hooks/useUpsertDocument.ts +95 -0
- package/template/packages/sdk/src/index.ts +161 -0
- package/template/packages/sdk/src/interactions/actions.ts +59 -0
- package/template/packages/sdk/src/interactions/shortcuts.tsx +694 -0
- package/template/packages/sdk/src/interactions/visibility.ts +13 -0
- package/template/packages/sdk/src/interactions.ts +45 -0
- package/template/packages/sdk/src/provider.tsx +44 -0
- package/template/packages/sdk/src/queryCache.ts +170 -0
- package/template/packages/sdk/src/runtime.ts +451 -0
- package/template/packages/sdk/src/styles.css +247 -0
- package/template/packages/sdk/src/tailwind.ts +66 -0
- package/template/packages/sdk/src/vite.ts +73 -0
- package/template/packages/{notis-sdk → sdk}/tsconfig.json +1 -0
- package/template/postcss.config.mjs +1 -1
- package/template/tailwind.config.ts +1 -6
- package/template/tsconfig.json +1 -0
- package/src/command-specs/db.js +0 -163
- package/src/runtime/app-preview-server.js +0 -312
- package/template/packages/notis-sdk/src/config.ts +0 -48
- 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/useDatabase.ts +0 -87
- package/template/packages/notis-sdk/src/hooks/useDocument.ts +0 -61
- package/template/packages/notis-sdk/src/hooks/useTool.ts +0 -49
- package/template/packages/notis-sdk/src/hooks/useUpsertDocument.ts +0 -57
- package/template/packages/notis-sdk/src/index.ts +0 -47
- package/template/packages/notis-sdk/src/provider.tsx +0 -44
- package/template/packages/notis-sdk/src/runtime.ts +0 -159
- package/template/packages/notis-sdk/src/styles.css +0 -123
- package/template/packages/notis-sdk/src/vite.ts +0 -54
- /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/ui.ts +0 -0
package/README.md
CHANGED
|
@@ -1,21 +1,56 @@
|
|
|
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
|
+
Requires Node.js 22.12.0 or newer (Node 24 LTS recommended). Update Node.js before installing or running the CLI; the CLI never upgrades your host runtime.
|
|
8
|
+
|
|
9
|
+
Use the Notis CLI through NPX; do not rely on an installed `notis` command. Run `notis login` once to authorize a scoped, revocable OAuth credential in the browser — that is how the CLI signs in everywhere, including on a machine that also runs Notis Desktop.
|
|
10
|
+
|
|
11
|
+
After local login, the CLI idempotently adds static Notis guidance to detected Codex and Claude Code user instruction files without changing their hooks. Run `notis agents install` when you explicitly want memory hooks that load the user's profile at session start, recall only new relevant memories before prompts, and save completed turns as automatic cross-session context. Codex then asks you to review and trust those hooks once in `/hooks`.
|
|
12
|
+
|
|
13
|
+
For CI, hosted agents, or internal scripts, pass a non-persisted token with `NOTIS_JWT=<token>`.
|
|
8
14
|
|
|
9
15
|
## Quick Start
|
|
10
16
|
|
|
11
17
|
```bash
|
|
12
|
-
notis --help
|
|
13
|
-
notis
|
|
14
|
-
notis
|
|
15
|
-
notis
|
|
18
|
+
npx --package @notis_ai/cli@latest -- notis --help
|
|
19
|
+
npx --package @notis_ai/cli@latest -- notis login
|
|
20
|
+
npx --package @notis_ai/cli@latest -- notis doctor
|
|
21
|
+
npx --package @notis_ai/cli@latest -- notis apps list
|
|
22
|
+
npx --package @notis_ai/cli@latest -- notis tools search "list Notis databases"
|
|
16
23
|
```
|
|
17
24
|
|
|
18
|
-
|
|
25
|
+
Use `notis login --paste-code` for the HTTPS copy-paste fallback on a remote machine.
|
|
26
|
+
|
|
27
|
+
## Release channels
|
|
28
|
+
|
|
29
|
+
`@latest` is the only tag worth documenting, for beta accounts too.
|
|
30
|
+
|
|
31
|
+
The npm tag has to be chosen before the CLI starts, and the CLI only learns which Notis it talks to once it reads the profile — so no single install command can be right for both environments on its own. Instead the deployment answers the question: `/.well-known/oauth-protected-resource/cli` reports its channel, `notis login` pins it on the profile, and any later run that finds itself on the wrong build hands the whole invocation to the right one before it does anything else.
|
|
32
|
+
|
|
33
|
+
- `notis doctor` reports `release_channel`, `cli_version`, and a `channel` check.
|
|
34
|
+
- `--api-base <url>` decides the build for that one run, so a one-off call against another environment uses the matching CLI.
|
|
35
|
+
- `./dev.sh` profiles and source checkouts are never re-executed: whatever you started stays in control.
|
|
36
|
+
- `NOTIS_CLI_AUTO_CHANNEL=0` disables the hand-off; `doctor` then reports the mismatch instead of correcting it.
|
|
37
|
+
|
|
38
|
+
## Profiles
|
|
39
|
+
|
|
40
|
+
A profile is one account paired with one API endpoint. Every profile keeps its own credential, so switching between them never signs any of them out.
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx --package @notis_ai/cli@latest -- notis login --profile work
|
|
44
|
+
npx --package @notis_ai/cli@latest -- notis profile list
|
|
45
|
+
npx --package @notis_ai/cli@latest -- notis profile use work
|
|
46
|
+
npx --package @notis_ai/cli@latest -- notis --profile default tools search "..."
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`notis logout` revokes and removes the OAuth grant for one profile; `--all-profiles` clears every one.
|
|
50
|
+
|
|
51
|
+
Credential precedence within the selected profile is: an active `./dev.sh` worktree credential, then `NOTIS_JWT`, then the profile's OAuth grant.
|
|
52
|
+
|
|
53
|
+
`./dev.sh` exposes its test account as a lease-backed `dev-<workspace>-<hash>` profile bound to its loopback backend. The credential stays in the worktree rather than the shared account config. That synthetic profile is the default only inside its active worktree; naming any stored profile with `--profile` runs against that real account instead.
|
|
19
54
|
|
|
20
55
|
The CLI defaults to `json` output in agent or non-TTY contexts and `table` output in interactive terminals.
|
|
21
56
|
|
|
@@ -24,244 +59,443 @@ The CLI defaults to `json` output in agent or non-TTY contexts and `table` outpu
|
|
|
24
59
|
- `--json` — Shortcut for `--output json`
|
|
25
60
|
- `--output <table|json|yaml|ndjson>` — Output mode override
|
|
26
61
|
- `--non-interactive` — Disable prompts
|
|
27
|
-
- `--profile <name>` —
|
|
62
|
+
- `--profile <name>` — Run as a stored profile instead of the active one
|
|
28
63
|
- `--api-base <url>` — Override the API base for one invocation
|
|
29
64
|
- `--timeout-ms <n>` — HTTP timeout in milliseconds
|
|
30
65
|
- `--idempotency-key <key>` — Override the generated idempotency key for mutating commands
|
|
31
66
|
|
|
32
|
-
##
|
|
67
|
+
## Authentication
|
|
68
|
+
|
|
69
|
+
### `npx --package @notis_ai/cli@latest -- notis login`
|
|
70
|
+
|
|
71
|
+
Authorize a CLI profile in a browser with scoped OAuth access.
|
|
33
72
|
|
|
34
|
-
|
|
73
|
+
When to use: Run this once per account you want the CLI to reach. Pass --profile to add a second account without signing the first one out.
|
|
35
74
|
|
|
36
|
-
|
|
75
|
+
Options:
|
|
76
|
+
- `--no-browser` — Print the authorization URL without opening a browser.
|
|
77
|
+
- `--print-url` — Print the authorization URL even when opening a browser.
|
|
78
|
+
- `--mode <mode>` — auto (default) hands the browser callback to a background listener when this command cannot wait; browser waits in-process; code shows a one-time code to copy.
|
|
79
|
+
- `--paste-code` — Alias for --mode code.
|
|
80
|
+
- `--timeout-seconds <n>` — Authorization lifetime in seconds (default 300 while waiting in a terminal; 1800 for detached or code hand-offs).
|
|
81
|
+
- `--scope <scope>` — OAuth permission to request (repeatable).
|
|
82
|
+
- `--code <code>` — Redeem the code shown in the browser after a non-interactive login.
|
|
83
|
+
|
|
84
|
+
Examples:
|
|
85
|
+
- `npx --package @notis_ai/cli@latest -- notis login`
|
|
86
|
+
- `npx --package @notis_ai/cli@latest -- notis login --profile work`
|
|
87
|
+
- `npx --package @notis_ai/cli@latest -- notis login --profile beta --api-base https://api-beta.notis.ai`
|
|
88
|
+
- `npx --package @notis_ai/cli@latest -- notis login --no-browser --print-url`
|
|
89
|
+
- `npx --package @notis_ai/cli@latest -- notis login --mode browser`
|
|
90
|
+
- `npx --package @notis_ai/cli@latest -- notis login --mode code`
|
|
91
|
+
- `npx --package @notis_ai/cli@latest -- notis login --code 4f3c2b1a`
|
|
92
|
+
|
|
93
|
+
### `npx --package @notis_ai/cli@latest -- notis logout`
|
|
94
|
+
|
|
95
|
+
Revoke and remove the OAuth credential for one CLI profile.
|
|
37
96
|
|
|
38
|
-
When to use: Use this
|
|
97
|
+
When to use: Use this to disconnect a single account. Other profiles keep their credentials unless you pass --all-profiles.
|
|
39
98
|
|
|
40
99
|
Options:
|
|
41
|
-
- `--
|
|
100
|
+
- `--all-profiles` — Clear OAuth credentials and pending authorizations from every CLI profile.
|
|
42
101
|
|
|
43
102
|
Examples:
|
|
44
|
-
- `
|
|
45
|
-
- `
|
|
103
|
+
- `npx --package @notis_ai/cli@latest -- notis logout`
|
|
104
|
+
- `npx --package @notis_ai/cli@latest -- notis logout --profile work`
|
|
105
|
+
- `npx --package @notis_ai/cli@latest -- notis logout --all-profiles`
|
|
46
106
|
|
|
47
|
-
### `notis auth logout`
|
|
48
107
|
|
|
49
|
-
|
|
108
|
+
## Coding-agent context
|
|
50
109
|
|
|
51
|
-
|
|
110
|
+
### `npx --package @notis_ai/cli@latest -- notis agents install`
|
|
111
|
+
|
|
112
|
+
Install Notis instructions and recall/capture hooks for local Codex and Claude Code.
|
|
113
|
+
|
|
114
|
+
When to use: Run after login to give local coding agents durable Notis CLI guidance, session-start profile context, deduplicated relevant recall, and automatic completed-turn capture. Hosted Notis sandboxes already receive prompt context and are skipped.
|
|
115
|
+
|
|
116
|
+
Options:
|
|
117
|
+
- `--codex-only` — Configure only Codex.
|
|
118
|
+
- `--claude-only` — Configure only Claude Code.
|
|
119
|
+
- `--no-memory-hooks` — Install static instructions and remove Notis recall/capture hooks.
|
|
52
120
|
|
|
53
121
|
Examples:
|
|
54
|
-
- `notis
|
|
55
|
-
- `notis
|
|
122
|
+
- `npx --package @notis_ai/cli@latest -- notis agents install`
|
|
123
|
+
- `npx --package @notis_ai/cli@latest -- notis agents install --codex-only`
|
|
124
|
+
- `npx --package @notis_ai/cli@latest -- notis agents install --claude-only`
|
|
125
|
+
- `npx --package @notis_ai/cli@latest -- notis agents install --no-memory-hooks`
|
|
56
126
|
|
|
57
|
-
### `notis auth status`
|
|
58
127
|
|
|
59
|
-
|
|
128
|
+
## Skills
|
|
60
129
|
|
|
61
|
-
|
|
130
|
+
### `npx --package @notis_ai/cli@latest -- notis skills sync`
|
|
131
|
+
|
|
132
|
+
Synchronize account skills and keep the three Notis base skills current.
|
|
133
|
+
|
|
134
|
+
When to use: Run manually whenever local agent skills should be reconciled. Manual runs ignore the Desktop automatic-sync preference.
|
|
62
135
|
|
|
63
136
|
Options:
|
|
64
|
-
- `--
|
|
137
|
+
- `--electron-repeat` — Honor the automatic Desktop sync preference (used by Notis Desktop).
|
|
65
138
|
|
|
66
139
|
Examples:
|
|
67
|
-
- `notis
|
|
68
|
-
- `
|
|
140
|
+
- `npx --package @notis_ai/cli@latest -- notis skills sync`
|
|
141
|
+
- `npx --package @notis_ai/cli@latest -- notis skills sync --json`
|
|
69
142
|
|
|
70
143
|
|
|
71
144
|
## Apps
|
|
72
145
|
|
|
73
|
-
### `notis apps list`
|
|
146
|
+
### `npx --package @notis_ai/cli@latest -- notis apps list`
|
|
74
147
|
|
|
75
148
|
List apps the current profile can access.
|
|
76
149
|
|
|
77
150
|
When to use: Discover existing apps before linking or deploying.
|
|
78
151
|
|
|
79
152
|
Examples:
|
|
80
|
-
- `notis apps list`
|
|
81
|
-
- `notis apps list --json`
|
|
153
|
+
- `npx --package @notis_ai/cli@latest -- notis apps list`
|
|
154
|
+
- `npx --package @notis_ai/cli@latest -- notis apps list --json`
|
|
82
155
|
|
|
83
|
-
### `notis apps init <name> [dir]`
|
|
156
|
+
### `npx --package @notis_ai/cli@latest -- notis apps init <name> [dir]`
|
|
84
157
|
|
|
85
158
|
Scaffold a new Notis app project.
|
|
86
159
|
|
|
87
|
-
When to use: Start a new Notis app.
|
|
160
|
+
When to use: Start a new Notis app. Use --from with a published Store app when one is close to the desired app; otherwise creates the bare Vite + React project.
|
|
161
|
+
|
|
162
|
+
Options:
|
|
163
|
+
- `--from <slug>` — Start from a published Store app listed by `notis apps scaffolds list`. Downloads its source from the public app registry.
|
|
88
164
|
|
|
89
165
|
Examples:
|
|
90
|
-
- `notis apps
|
|
91
|
-
- `notis apps init "
|
|
166
|
+
- `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
|
|
167
|
+
- `npx --package @notis_ai/cli@latest -- notis apps init "Mind the Flo"`
|
|
168
|
+
- `npx --package @notis_ai/cli@latest -- notis apps init "My CRM" --from databases`
|
|
169
|
+
- `npx --package @notis_ai/cli@latest -- notis apps init "My App" ~/code/my-app`
|
|
92
170
|
|
|
93
|
-
### `notis apps
|
|
171
|
+
### `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
|
|
172
|
+
|
|
173
|
+
List published Store apps available as scaffolds.
|
|
174
|
+
|
|
175
|
+
When to use: Discover published Store apps to start from before creating a new app. Every app published to the public Store is automatically a scaffold; use --search to narrow the catalog.
|
|
176
|
+
|
|
177
|
+
Options:
|
|
178
|
+
- `--search <term>` — Filter scaffolds by name, tagline, description, or category.
|
|
179
|
+
|
|
180
|
+
Examples:
|
|
181
|
+
- `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
|
|
182
|
+
- `npx --package @notis_ai/cli@latest -- notis apps scaffolds list --search journal`
|
|
183
|
+
- `npx --package @notis_ai/cli@latest -- notis apps init "My App" --from databases`
|
|
184
|
+
|
|
185
|
+
### `npx --package @notis_ai/cli@latest -- notis apps create <name> [dir]`
|
|
94
186
|
|
|
95
187
|
Create a new remote Notis app and optionally link a local project to it.
|
|
96
188
|
|
|
97
189
|
When to use: Provision a fresh remote app before the first deploy. Pass a project directory to link it immediately.
|
|
98
190
|
|
|
99
191
|
Options:
|
|
100
|
-
- `--
|
|
101
|
-
- `--icon <lucide:icon>` — Optional Lucide icon, for example lucide:dices.
|
|
192
|
+
- `--team-id <id>` — Create or reuse the exact team-scoped app (default: personal).
|
|
102
193
|
|
|
103
194
|
Examples:
|
|
104
|
-
- `notis apps create "My App"`
|
|
105
|
-
- `notis apps create "My App"
|
|
195
|
+
- `npx --package @notis_ai/cli@latest -- notis apps create "My App"`
|
|
196
|
+
- `npx --package @notis_ai/cli@latest -- notis apps create "My App" .`
|
|
106
197
|
|
|
107
|
-
### `notis apps
|
|
198
|
+
### `npx --package @notis_ai/cli@latest -- notis apps build [dir]`
|
|
108
199
|
|
|
109
|
-
|
|
200
|
+
Build and package the app into .notis/output/.
|
|
110
201
|
|
|
111
|
-
When to use:
|
|
202
|
+
When to use: Prepare the app for verification or deployment.
|
|
112
203
|
|
|
113
204
|
Examples:
|
|
114
|
-
- `notis apps
|
|
115
|
-
- `notis apps
|
|
205
|
+
- `npx --package @notis_ai/cli@latest -- notis apps build`
|
|
206
|
+
- `npx --package @notis_ai/cli@latest -- notis apps build ./my-app`
|
|
116
207
|
|
|
117
|
-
### `notis apps
|
|
208
|
+
### `npx --package @notis_ai/cli@latest -- notis apps verify [dir]`
|
|
118
209
|
|
|
119
|
-
|
|
210
|
+
Validate that every route renders and reports Store listing readiness.
|
|
120
211
|
|
|
121
|
-
When to use:
|
|
212
|
+
When to use: Any time after notis apps build, and before deploy. Catches render-time crashes and missing runtime calls. Incomplete listing media is reported as a warning; pass --listing to fail on it instead.
|
|
213
|
+
|
|
214
|
+
Options:
|
|
215
|
+
- `--routes <slugs>` — Comma-separated route slugs. Default: every route in manifest.
|
|
216
|
+
- `--port <n>` — Loopback port. Default: auto-pick.
|
|
217
|
+
- `--skip-build` — Skip notis apps build; reuse existing .notis/output/.
|
|
218
|
+
- `--mode <mode>` — stub | live. Default stub. Live posts to /portal_views/runtime_query with the CLI JWT and fails routes whose runtime calls all errored.
|
|
219
|
+
- `--listing` — Fail instead of warn when the Store listing (tagline, categories, screenshots, changelog) is incomplete.
|
|
220
|
+
- `--no-browser` — Start the harness server and print URLs; do not drive agent-browser.
|
|
221
|
+
- `--keep-open` — Leave server + browser session running after report (for manual triage).
|
|
122
222
|
|
|
123
223
|
Examples:
|
|
124
|
-
- `notis apps
|
|
125
|
-
- `notis apps
|
|
224
|
+
- `npx --package @notis_ai/cli@latest -- notis apps verify`
|
|
225
|
+
- `npx --package @notis_ai/cli@latest -- notis apps verify --routes notes`
|
|
226
|
+
- `npx --package @notis_ai/cli@latest -- notis apps verify --mode live`
|
|
227
|
+
- `npx --package @notis_ai/cli@latest -- notis apps verify --listing # gate on Store listing readiness before publish`
|
|
228
|
+
- `npx --package @notis_ai/cli@latest -- notis apps verify --no-browser # start the harness, drive agent-browser yourself`
|
|
126
229
|
|
|
127
|
-
### `notis apps
|
|
230
|
+
### `npx --package @notis_ai/cli@latest -- notis apps screenshot [dir]`
|
|
128
231
|
|
|
129
|
-
|
|
232
|
+
Capture configured listing route/scenario states via the headless harness.
|
|
130
233
|
|
|
131
|
-
When to use:
|
|
234
|
+
When to use: Generate the 3–6 declared metadata/screenshot-N.png files for the App Store listing. Apps are icon-led (like Raycast) — there is no cover image, only these screenshots. Each screenshot may set a focus selector to remove empty canvas and a light or dark theme that also controls its Store frame. Run before notis apps verify / deploy / publish.
|
|
132
235
|
|
|
133
236
|
Options:
|
|
134
|
-
- `--
|
|
237
|
+
- `--routes <slugs>` — Comma-separated route slugs. Default: every configured screenshot state.
|
|
238
|
+
- `--port <n>` — Loopback port. Default: auto-pick.
|
|
239
|
+
- `--width <px>` — Viewport width. Default: 2000.
|
|
240
|
+
- `--height <px>` — Viewport height. Default: 1250 (16:10).
|
|
241
|
+
- `--output-dir <dir>` — Where to write screenshot-N.png. Default: metadata/.
|
|
242
|
+
- `--mode <mode>` — stub | live. Default stub. Live renders against real data via the CLI JWT (requires a linked app), so screenshots show actual content instead of empty states.
|
|
243
|
+
- `--raw` — Write the unframed harness capture instead of the default Store presentation.
|
|
244
|
+
- `--skip-build` — Skip notis apps build; reuse existing .notis/output/.
|
|
135
245
|
|
|
136
246
|
Examples:
|
|
137
|
-
- `notis apps
|
|
138
|
-
- `notis apps
|
|
247
|
+
- `npx --package @notis_ai/cli@latest -- notis apps screenshot # honors notis.config.ts screenshot scenarios`
|
|
248
|
+
- `npx --package @notis_ai/cli@latest -- notis apps screenshot --routes home,history`
|
|
249
|
+
- `npx --package @notis_ai/cli@latest -- notis apps screenshot --mode live # populated screenshots from real data`
|
|
250
|
+
- `npx --package @notis_ai/cli@latest -- notis apps screenshot --raw # diagnostic capture without Store framing`
|
|
139
251
|
|
|
140
|
-
### `notis apps link <app-id> [dir]`
|
|
252
|
+
### `npx --package @notis_ai/cli@latest -- notis apps link <app-id> [dir]`
|
|
141
253
|
|
|
142
254
|
Link a local project to a remote Notis app.
|
|
143
255
|
|
|
144
256
|
When to use: Connect a local project to an existing app for deployment.
|
|
145
257
|
|
|
258
|
+
Options:
|
|
259
|
+
- `--expected-version <version>` — Link only if the remote deployment version still matches this non-negative integer.
|
|
260
|
+
|
|
146
261
|
Examples:
|
|
147
|
-
- `notis apps link abc123`
|
|
148
|
-
- `notis apps link abc123 ./my-app`
|
|
262
|
+
- `npx --package @notis_ai/cli@latest -- notis apps link abc123`
|
|
263
|
+
- `npx --package @notis_ai/cli@latest -- notis apps link abc123 ./my-app`
|
|
264
|
+
- `npx --package @notis_ai/cli@latest -- notis apps link abc123 ./recovered-app --expected-version 0`
|
|
149
265
|
|
|
150
|
-
### `notis apps
|
|
266
|
+
### `npx --package @notis_ai/cli@latest -- notis apps pull <app-id> [dir]`
|
|
151
267
|
|
|
152
|
-
|
|
268
|
+
Download a Notis app source snapshot into a local project folder.
|
|
153
269
|
|
|
154
|
-
When to use:
|
|
270
|
+
When to use: Edit an installed app. Preserve local edits, pull and link its persisted source, then build, verify and deploy.
|
|
271
|
+
|
|
272
|
+
Options:
|
|
273
|
+
- `--force` — Overwrite a non-empty target directory.
|
|
274
|
+
- `--source-version <n>` — Pull a specific app source version (default: latest).
|
|
275
|
+
|
|
276
|
+
Examples:
|
|
277
|
+
- `npx --package @notis_ai/cli@latest -- notis apps pull abc123`
|
|
278
|
+
- `npx --package @notis_ai/cli@latest -- notis apps pull abc123 ./my-app --force --source-version 3`
|
|
279
|
+
|
|
280
|
+
### `npx --package @notis_ai/cli@latest -- notis apps deploy [dir]`
|
|
281
|
+
|
|
282
|
+
Build, verify and release the linked Workspace app.
|
|
283
|
+
|
|
284
|
+
When to use: Build, verify and release the linked personal or team Workspace app. This command does not publish to the Store.
|
|
155
285
|
|
|
156
286
|
Options:
|
|
157
287
|
- `--app-id <id>` — Override linked app ID.
|
|
158
|
-
- `--skip-build` —
|
|
159
|
-
- `--direct` — Upload directly to Supabase storage, bypassing the backend server. Auto-fallback on network errors.
|
|
288
|
+
- `--skip-build` — Reuse unchanged build output; automated verification still runs.
|
|
160
289
|
|
|
161
290
|
Examples:
|
|
162
|
-
- `notis apps deploy`
|
|
163
|
-
- `notis apps deploy --skip-build`
|
|
164
|
-
- `notis apps deploy --app-id abc123`
|
|
165
|
-
- `notis apps deploy --direct`
|
|
166
291
|
|
|
167
|
-
### `notis apps
|
|
292
|
+
### `npx --package @notis_ai/cli@latest -- notis apps publish [dir]`
|
|
293
|
+
|
|
294
|
+
Submit the deployed app for Store review.
|
|
295
|
+
|
|
296
|
+
When to use: After the user explicitly confirms the App Details page and Store listing are ready. Requires the current local project to match the latest deployed version.
|
|
297
|
+
|
|
298
|
+
Options:
|
|
299
|
+
- `--app-id <id>` — Override linked app ID.
|
|
300
|
+
- `--confirm-ready` — Confirm the user approved the current App Details page for Store submission.
|
|
301
|
+
|
|
302
|
+
Examples:
|
|
303
|
+
- `npx --package @notis_ai/cli@latest -- notis apps publish --confirm-ready`
|
|
304
|
+
- `npx --package @notis_ai/cli@latest -- notis apps publish ./my-app --confirm-ready`
|
|
305
|
+
|
|
306
|
+
### `npx --package @notis_ai/cli@latest -- notis apps duplicate [dir]`
|
|
307
|
+
|
|
308
|
+
Duplicate an app into an independent copy with its own databases.
|
|
309
|
+
|
|
310
|
+
When to use: When the same app should run for a second purpose - a notes app for blog drafts alongside one for bookmarks. The copy shares no data with the source.
|
|
311
|
+
|
|
312
|
+
Options:
|
|
313
|
+
- `--app-id <id>` — App to duplicate. Defaults to the app this project is linked to.
|
|
314
|
+
- `--name <name>` — Name for the duplicate (default: the source name followed by "copy").
|
|
315
|
+
- `--copy-documents <mode>` — Which rows to copy: 'declared' (default, the starter content a fresh install would have), 'all', or 'none'.
|
|
316
|
+
|
|
317
|
+
Examples:
|
|
318
|
+
- `npx --package @notis_ai/cli@latest -- notis apps duplicate --name "Blog"`
|
|
319
|
+
- `npx --package @notis_ai/cli@latest -- notis apps duplicate --app-id abc123 --name "Bookmarks" --copy-documents none`
|
|
320
|
+
|
|
321
|
+
### `npx --package @notis_ai/cli@latest -- notis apps doctor [dir]`
|
|
168
322
|
|
|
169
323
|
Check project health and readiness.
|
|
170
324
|
|
|
171
325
|
When to use: Diagnose issues with a Notis app project.
|
|
172
326
|
|
|
173
327
|
Examples:
|
|
174
|
-
- `notis apps doctor`
|
|
175
|
-
- `notis apps doctor ./my-app`
|
|
328
|
+
- `npx --package @notis_ai/cli@latest -- notis apps doctor`
|
|
329
|
+
- `npx --package @notis_ai/cli@latest -- notis apps doctor ./my-app`
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
## Reports
|
|
333
|
+
|
|
334
|
+
Reports save independent SDK documents into app-owned database records. They do not deploy an app or change shared app routes.
|
|
335
|
+
|
|
336
|
+
Choose the owning database first and author exactly one SDK route. Keep readable content in a separate context file. Build, verify, inspect the preview, then save. Save rebuilds and stub-verifies a frozen artifact before persistence; local verification does not prove that live data loaded in the saved report.
|
|
337
|
+
|
|
338
|
+
To revise, read the current document and recover its source from the short-lived `report_source_url`. Pass `--document-id` and the freshly read `--expected-revision`; add `--attach` only to replace the body of an existing non-view record. Read back the saved record and inspect its native URL. See the product `notis-reports` skill for the full authoring contract.
|
|
339
|
+
|
|
340
|
+
### `npx --package @notis_ai/cli@latest -- notis reports init <name> [dir]`
|
|
341
|
+
|
|
342
|
+
Init a record-owned SDK report locally.
|
|
343
|
+
|
|
344
|
+
When to use: Author an independent report without deploying its owning app.
|
|
345
|
+
|
|
346
|
+
Options:
|
|
347
|
+
- `--from <slug>` — Start from a published Store app listed by `notis apps scaffolds list`. Downloads its source from the public app registry.
|
|
348
|
+
|
|
349
|
+
Examples:
|
|
350
|
+
- `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
|
|
351
|
+
- `npx --package @notis_ai/cli@latest -- notis reports init "Mind the Flo"`
|
|
352
|
+
- `npx --package @notis_ai/cli@latest -- notis reports init "My CRM" --from databases`
|
|
353
|
+
- `npx --package @notis_ai/cli@latest -- notis reports init "My App" ~/code/my-app`
|
|
354
|
+
|
|
355
|
+
### `npx --package @notis_ai/cli@latest -- notis reports build [dir]`
|
|
356
|
+
|
|
357
|
+
Build a record-owned SDK report locally.
|
|
358
|
+
|
|
359
|
+
When to use: Author an independent report without deploying its owning app.
|
|
360
|
+
|
|
361
|
+
Examples:
|
|
362
|
+
- `npx --package @notis_ai/cli@latest -- notis reports build`
|
|
363
|
+
- `npx --package @notis_ai/cli@latest -- notis reports build ./my-app`
|
|
364
|
+
|
|
365
|
+
### `npx --package @notis_ai/cli@latest -- notis reports verify [dir]`
|
|
366
|
+
|
|
367
|
+
Verify a record-owned SDK report locally.
|
|
368
|
+
|
|
369
|
+
When to use: Author an independent report without deploying its owning app.
|
|
370
|
+
|
|
371
|
+
Options:
|
|
372
|
+
- `--routes <slugs>` — Comma-separated route slugs. Default: every route in manifest.
|
|
373
|
+
- `--port <n>` — Loopback port. Default: auto-pick.
|
|
374
|
+
- `--skip-build` — Skip notis apps build; reuse existing .notis/output/.
|
|
375
|
+
- `--mode <mode>` — stub | live. Default stub. Live posts to /portal_views/runtime_query with the CLI JWT and fails routes whose runtime calls all errored.
|
|
376
|
+
- `--listing` — Ignored for reports; saving a report does not publish a Store listing.
|
|
377
|
+
- `--no-browser` — Start the harness server and print URLs; do not drive agent-browser.
|
|
378
|
+
- `--keep-open` — Leave server + browser session running after report (for manual triage).
|
|
379
|
+
|
|
380
|
+
Examples:
|
|
381
|
+
- `npx --package @notis_ai/cli@latest -- notis reports verify`
|
|
382
|
+
- `npx --package @notis_ai/cli@latest -- notis reports verify --routes notes`
|
|
383
|
+
- `npx --package @notis_ai/cli@latest -- notis reports verify --mode live`
|
|
384
|
+
- `npx --package @notis_ai/cli@latest -- notis reports verify --no-browser # start the harness, drive agent-browser yourself`
|
|
176
385
|
|
|
386
|
+
### `npx --package @notis_ai/cli@latest -- notis reports preview [dir]`
|
|
177
387
|
|
|
178
|
-
|
|
388
|
+
Preview a record-owned SDK report locally. Keeps the preview server and browser session open.
|
|
179
389
|
|
|
180
|
-
|
|
390
|
+
When to use: Author an independent report without deploying its owning app.
|
|
391
|
+
|
|
392
|
+
Options:
|
|
393
|
+
- `--routes <slugs>` — Comma-separated route slugs. Default: every route in manifest.
|
|
394
|
+
- `--port <n>` — Loopback port. Default: auto-pick.
|
|
395
|
+
- `--skip-build` — Skip notis apps build; reuse existing .notis/output/.
|
|
396
|
+
- `--mode <mode>` — stub | live. Default stub. Live posts to /portal_views/runtime_query with the CLI JWT and fails routes whose runtime calls all errored.
|
|
397
|
+
- `--listing` — Ignored for reports; saving a report does not publish a Store listing.
|
|
398
|
+
- `--no-browser` — Start the harness server and print URLs; do not drive agent-browser.
|
|
399
|
+
- `--keep-open` — Leave server + browser session running after report (for manual triage).
|
|
400
|
+
|
|
401
|
+
Examples:
|
|
402
|
+
- `npx --package @notis_ai/cli@latest -- notis reports preview`
|
|
403
|
+
- `npx --package @notis_ai/cli@latest -- notis reports preview --routes notes`
|
|
404
|
+
- `npx --package @notis_ai/cli@latest -- notis reports preview --mode live`
|
|
405
|
+
- `npx --package @notis_ai/cli@latest -- notis reports preview --no-browser # start the harness, drive agent-browser yourself`
|
|
181
406
|
|
|
182
|
-
|
|
407
|
+
### `npx --package @notis_ai/cli@latest -- notis reports save [dir]`
|
|
183
408
|
|
|
184
|
-
|
|
409
|
+
Build, verify and save a report into an app-owned database record.
|
|
410
|
+
|
|
411
|
+
When to use: Persist an independently authored report, not an app release.
|
|
412
|
+
|
|
413
|
+
Options:
|
|
414
|
+
- `--database-id <id>` — Required. Owning app database.
|
|
415
|
+
- `--document-id <id>` — Existing record to update or attach to.
|
|
416
|
+
- `--attach` — Attach to an existing non-view record.
|
|
417
|
+
- `--expected-revision <revision>` — Fresh view revision (0 for a record without a view).
|
|
418
|
+
- `--title <title>` — Required, including updates. Record title.
|
|
419
|
+
- `--context-file <file>` — Required. UTF-8 readable report content and structure.
|
|
420
|
+
- `--properties-file <file>` — JSON database property values keyed by name.
|
|
185
421
|
|
|
186
422
|
Examples:
|
|
187
|
-
- `notis
|
|
188
|
-
|
|
423
|
+
- `npx --package @notis_ai/cli@latest -- notis reports save ./weekly-report --database-id <id> --title "Weekly review" --context-file ./context.md`
|
|
424
|
+
|
|
189
425
|
|
|
190
|
-
|
|
426
|
+
## Hand-over
|
|
191
427
|
|
|
192
|
-
|
|
428
|
+
Give the branch you are on to a Notis agent, which continues the work in a git worktree on the Notis cloud computer. `--route` picks the agent: the hosted Notis agent, or the user's own Codex/Claude Code in the cloud sandbox or on their Mac. `--branch-mode same` makes the agent commit onto your branch; the default cuts a new branch from it.
|
|
193
429
|
|
|
194
|
-
|
|
430
|
+
### `npx --package @notis_ai/cli@latest -- notis handover start <task>`
|
|
431
|
+
|
|
432
|
+
Hand the current branch to a Notis agent and keep working.
|
|
433
|
+
|
|
434
|
+
When to use: Use this when you want Notis to continue work on the branch you are on -- long refactors, test fixing, or anything that should keep running after you close the laptop. Pick the agent with --route.
|
|
195
435
|
|
|
196
436
|
Options:
|
|
197
|
-
- `--
|
|
198
|
-
- `--
|
|
199
|
-
- `--
|
|
200
|
-
- `--
|
|
201
|
-
- `--icon <lucide-icon-name>` — Database icon (Lucide icon name, e.g. database).
|
|
202
|
-
- `--properties <json>` — JSON array of property definitions.
|
|
437
|
+
- `--branch-mode <mode>` — same = the agent commits onto your branch. new = the agent cuts a new branch from it (default).
|
|
438
|
+
- `--route <target>` — Which agent runs it: notis (hosted, default), codex_cloud, claude_cloud, codex_local, claude_local, or auto.
|
|
439
|
+
- `--repo <slug>` — Configured repository slug on the cloud computer, when you know it.
|
|
440
|
+
- `--no-wip` — Refuse on a dirty tree instead of committing the changes first.
|
|
203
441
|
|
|
204
442
|
Examples:
|
|
205
|
-
- `
|
|
206
|
-
- `
|
|
443
|
+
- `npx --package @notis_ai/cli@latest -- notis handover start "fix the failing auth tests"`
|
|
444
|
+
- `npx --package @notis_ai/cli@latest -- notis handover start "finish the migration" --branch-mode same --route codex_cloud`
|
|
445
|
+
- `npx --package @notis_ai/cli@latest -- notis handover start "add integration tests" --route claude_cloud`
|
|
446
|
+
- `npx --package @notis_ai/cli@latest -- notis handover start "review and clean up this branch" --route claude_local`
|
|
207
447
|
|
|
208
|
-
### `notis
|
|
448
|
+
### `npx --package @notis_ai/cli@latest -- notis handover status`
|
|
209
449
|
|
|
210
|
-
|
|
450
|
+
Show the coding-agent threads Notis is running for you.
|
|
211
451
|
|
|
212
|
-
When to use: Use this
|
|
452
|
+
When to use: Use this after a hand-over to see whether the agent is still working.
|
|
213
453
|
|
|
214
454
|
Options:
|
|
215
|
-
- `--
|
|
216
|
-
- `--
|
|
217
|
-
- `--page-size <n>` — Page size between 1 and 100.
|
|
218
|
-
- `--offset <n>` — Zero-based offset.
|
|
219
|
-
- `--cursor <value>` — Pagination cursor alias for next_offset.
|
|
455
|
+
- `--provider <provider>` — Filter to codex or claude_code.
|
|
456
|
+
- `--refresh` — Force a live refresh instead of cached state.
|
|
220
457
|
|
|
221
458
|
Examples:
|
|
222
|
-
- `
|
|
223
|
-
- `notis
|
|
459
|
+
- `npx --package @notis_ai/cli@latest -- notis handover status`
|
|
460
|
+
- `npx --package @notis_ai/cli@latest -- notis handover status --provider codex --refresh`
|
|
224
461
|
|
|
225
462
|
|
|
226
463
|
## Generic Tools
|
|
227
464
|
|
|
228
|
-
### `notis tools toolkits`
|
|
465
|
+
### `npx --package @notis_ai/cli@latest -- notis tools toolkits`
|
|
229
466
|
|
|
230
|
-
List toolkit namespaces available to the active user.
|
|
467
|
+
List toolkit namespaces and connection statuses available to the active user.
|
|
231
468
|
|
|
232
|
-
When to use: Use this before searching or executing generic tools.
|
|
469
|
+
When to use: Use this to inspect connection state before searching or executing generic tools.
|
|
233
470
|
|
|
234
471
|
Examples:
|
|
235
|
-
- `notis tools toolkits`
|
|
236
|
-
- `notis tools toolkits --json`
|
|
472
|
+
- `npx --package @notis_ai/cli@latest -- notis tools toolkits`
|
|
473
|
+
- `npx --package @notis_ai/cli@latest -- notis tools toolkits --json`
|
|
237
474
|
|
|
238
|
-
### `notis tools search <query>`
|
|
475
|
+
### `npx --package @notis_ai/cli@latest -- notis tools search <query>`
|
|
239
476
|
|
|
240
477
|
Search across toolkit namespaces using natural language.
|
|
241
478
|
|
|
242
479
|
When to use: Use this when you need a generic capability that does not have a first-class CLI command.
|
|
243
480
|
|
|
244
481
|
Options:
|
|
245
|
-
- `--
|
|
482
|
+
- `--known-fields <text>` — Optional known field hints, such as channel_name:general or user_email:a@example.com.
|
|
246
483
|
|
|
247
484
|
Examples:
|
|
248
|
-
- `notis tools search "send an email"`
|
|
249
|
-
- `notis tools search "
|
|
485
|
+
- `npx --package @notis_ai/cli@latest -- notis tools search "send an email"`
|
|
486
|
+
- `npx --package @notis_ai/cli@latest -- notis tools search "post on LinkedIn" --known-fields "platform:linkedin"`
|
|
250
487
|
|
|
251
|
-
### `notis tools describe <tool-name>`
|
|
488
|
+
### `npx --package @notis_ai/cli@latest -- notis tools describe <tool-name>`
|
|
252
489
|
|
|
253
490
|
Describe a generic tool by name.
|
|
254
491
|
|
|
255
492
|
When to use: Use this when you know the tool name and want its parameter schema before execution.
|
|
256
493
|
|
|
257
|
-
Options:
|
|
258
|
-
- `--toolkits <csv-or-json>` — Optional subset of toolkit ids to search.
|
|
259
|
-
|
|
260
494
|
Examples:
|
|
261
|
-
- `notis tools describe composio-gmail-
|
|
262
|
-
- `notis tools describe
|
|
495
|
+
- `npx --package @notis_ai/cli@latest -- notis tools describe composio-gmail-send_email`
|
|
496
|
+
- `npx --package @notis_ai/cli@latest -- notis tools describe LOCAL_NOTIS_DATABASE_QUERY`
|
|
263
497
|
|
|
264
|
-
### `notis tools exec <tool-name>`
|
|
498
|
+
### `npx --package @notis_ai/cli@latest -- notis tools exec <tool-name>`
|
|
265
499
|
|
|
266
500
|
Execute a generic tool by canonical tool name.
|
|
267
501
|
|
|
@@ -269,65 +503,133 @@ When to use: Use this as the escape hatch for integrations or Notis tools withou
|
|
|
269
503
|
|
|
270
504
|
Options:
|
|
271
505
|
- `--arguments <json>` — JSON object, @file path, or - for stdin.
|
|
506
|
+
- `--arguments-file <path>` — Read the JSON arguments object from a file.
|
|
507
|
+
- `--file <argument-path=local-path>` — Upload a local file into a file-uploadable tool argument. Repeatable.
|
|
272
508
|
- `--get-schema` — Display the tool parameter schema without executing.
|
|
273
509
|
- `--dry-run` — Validate arguments against the tool schema without executing.
|
|
274
|
-
- `--watch <seconds>` — Re-execute on an interval and stream results.
|
|
275
510
|
|
|
276
511
|
Examples:
|
|
277
|
-
- `notis tools exec
|
|
278
|
-
- `notis tools exec
|
|
279
|
-
- `notis tools exec
|
|
280
|
-
- `notis tools exec
|
|
281
|
-
- `notis tools exec
|
|
282
|
-
- `notis tools exec
|
|
512
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments '{"database_slug":"tasks","query":{}}'`
|
|
513
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --arguments '{"database_slug":"tasks"}'`
|
|
514
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --get-schema`
|
|
515
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --dry-run --arguments '{"database_slug":"tasks","query":{}}'`
|
|
516
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments @query.json`
|
|
517
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments-file query.json`
|
|
518
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments - < query.json`
|
|
519
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec composio-dropbox-upload_file --arguments '{"path":"/target/in/dropbox.pdf"}' --file content=./Invoice.pdf`
|
|
283
520
|
|
|
284
|
-
### `notis tools exec-parallel <calls>`
|
|
521
|
+
### `npx --package @notis_ai/cli@latest -- notis tools exec-parallel <calls>`
|
|
285
522
|
|
|
286
523
|
Execute multiple tools concurrently.
|
|
287
524
|
|
|
288
525
|
When to use: Use this when you need to run independent tool calls simultaneously for speed.
|
|
289
526
|
|
|
527
|
+
Options:
|
|
528
|
+
- `--file <argument-path=local-path>` — Unsupported for exec-parallel; use tools exec for file uploads.
|
|
529
|
+
|
|
290
530
|
Examples:
|
|
291
|
-
- `notis tools exec-parallel '[{"tool_name":"
|
|
531
|
+
- `npx --package @notis_ai/cli@latest -- notis tools exec-parallel '[{"tool_name":"LOCAL_NOTIS_DATABASE_QUERY","arguments":{"database_slug":"tasks","query":{}}},{"tool_name":"LOCAL_NOTIS_DATABASE_LIST_DATABASES","arguments":{}}]'`
|
|
292
532
|
|
|
293
|
-
### `notis tools link <toolkit>`
|
|
533
|
+
### `npx --package @notis_ai/cli@latest -- notis tools link <toolkit>`
|
|
294
534
|
|
|
295
|
-
|
|
535
|
+
Connect or reconnect an integration toolkit.
|
|
296
536
|
|
|
297
|
-
When to use: Use this when a tool requires authentication
|
|
537
|
+
When to use: Use this when a tool requires authentication or an active connection must be replaced.
|
|
538
|
+
|
|
539
|
+
Options:
|
|
540
|
+
- `--reconnect` — Replace the existing account instead of adding another connection.
|
|
541
|
+
- `--connection-id <id>` — Exact connection id to replace when multiple accounts exist.
|
|
542
|
+
- `--label <label>` — Account label for a new or replacement connection.
|
|
543
|
+
- `--credentials <json>` — Credential JSON object, @file path, or - for stdin. Prefer stdin so secrets do not enter shell history.
|
|
298
544
|
|
|
299
545
|
Examples:
|
|
300
|
-
- `notis tools link github`
|
|
301
|
-
- `notis tools link
|
|
546
|
+
- `npx --package @notis_ai/cli@latest -- notis tools link github`
|
|
547
|
+
- `npx --package @notis_ai/cli@latest -- notis tools link dataforseo --reconnect --credentials - < credentials.json`
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
## Profile Commands
|
|
551
|
+
|
|
552
|
+
### `npx --package @notis_ai/cli@latest -- notis profile list`
|
|
553
|
+
|
|
554
|
+
List every CLI profile with its account, API endpoint, and credential state.
|
|
555
|
+
|
|
556
|
+
When to use: Use this to see which accounts and environments this machine can reach before choosing one.
|
|
557
|
+
|
|
558
|
+
Examples:
|
|
559
|
+
- `npx --package @notis_ai/cli@latest -- notis profile list`
|
|
560
|
+
- `npx --package @notis_ai/cli@latest -- notis profile list --json`
|
|
561
|
+
|
|
562
|
+
### `npx --package @notis_ai/cli@latest -- notis profile use <name>`
|
|
563
|
+
|
|
564
|
+
Switch the default profile without signing any profile out.
|
|
565
|
+
|
|
566
|
+
When to use: Use this to change which account and API subsequent commands target. Every other profile keeps its credential.
|
|
567
|
+
|
|
568
|
+
Examples:
|
|
569
|
+
- `npx --package @notis_ai/cli@latest -- notis profile use work`
|
|
570
|
+
- `npx --package @notis_ai/cli@latest -- notis profile use default`
|
|
571
|
+
|
|
572
|
+
### `npx --package @notis_ai/cli@latest -- notis profile show [name]`
|
|
573
|
+
|
|
574
|
+
Show one profile in detail, including scopes and credential expiry.
|
|
575
|
+
|
|
576
|
+
When to use: Use this to inspect exactly which account and endpoint a profile resolves to.
|
|
577
|
+
|
|
578
|
+
Examples:
|
|
579
|
+
- `npx --package @notis_ai/cli@latest -- notis profile show`
|
|
580
|
+
- `npx --package @notis_ai/cli@latest -- notis profile show work --json`
|
|
581
|
+
|
|
582
|
+
### `npx --package @notis_ai/cli@latest -- notis profile remove <name>`
|
|
583
|
+
|
|
584
|
+
Delete a CLI profile from this machine.
|
|
585
|
+
|
|
586
|
+
When to use: Use this after logging a profile out. Removing a still-authorized profile requires --force and leaves the grant live server-side.
|
|
587
|
+
|
|
588
|
+
Options:
|
|
589
|
+
- `--force` — Discard a profile that still holds a credential.
|
|
590
|
+
|
|
591
|
+
Examples:
|
|
592
|
+
- `npx --package @notis_ai/cli@latest -- notis profile remove old-work`
|
|
593
|
+
- `npx --package @notis_ai/cli@latest -- notis profile remove old-work --force`
|
|
302
594
|
|
|
303
595
|
|
|
304
596
|
## Meta Commands
|
|
305
597
|
|
|
306
|
-
### `notis doctor`
|
|
598
|
+
### `npx --package @notis_ai/cli@latest -- notis doctor`
|
|
307
599
|
|
|
308
600
|
Run a quick CLI health check for config, auth, and API reachability.
|
|
309
601
|
|
|
310
602
|
When to use: Use this before relying on the CLI in automation or after changing environments.
|
|
311
603
|
|
|
312
604
|
Examples:
|
|
313
|
-
- `notis doctor`
|
|
314
|
-
- `notis doctor --json`
|
|
605
|
+
- `npx --package @notis_ai/cli@latest -- notis doctor`
|
|
606
|
+
- `npx --package @notis_ai/cli@latest -- notis doctor --json`
|
|
607
|
+
|
|
608
|
+
### `npx --package @notis_ai/cli@latest -- notis whoami`
|
|
609
|
+
|
|
610
|
+
Display the active profile, user, and available toolkit connection statuses.
|
|
611
|
+
|
|
612
|
+
When to use: Use this to quickly confirm which account and environment a command will target.
|
|
613
|
+
|
|
614
|
+
Examples:
|
|
615
|
+
- `npx --package @notis_ai/cli@latest -- notis whoami`
|
|
616
|
+
- `npx --package @notis_ai/cli@latest -- notis whoami --json`
|
|
315
617
|
|
|
316
|
-
### `notis describe <command...>`
|
|
618
|
+
### `npx --package @notis_ai/cli@latest -- notis describe <command...>`
|
|
317
619
|
|
|
318
620
|
Describe a first-class CLI command in detail.
|
|
319
621
|
|
|
320
622
|
When to use: Use this when an agent or human needs the exact shape, examples, and semantics of a command.
|
|
321
623
|
|
|
322
624
|
Examples:
|
|
323
|
-
- `notis describe apps
|
|
324
|
-
- `notis describe
|
|
625
|
+
- `npx --package @notis_ai/cli@latest -- notis describe apps deploy`
|
|
626
|
+
- `npx --package @notis_ai/cli@latest -- notis describe tools exec`
|
|
325
627
|
|
|
326
628
|
|
|
327
629
|
## Local Development
|
|
328
630
|
|
|
329
631
|
```bash
|
|
330
|
-
cd cli
|
|
632
|
+
cd packages/cli
|
|
331
633
|
npm install
|
|
332
634
|
node ./bin/notis.js --help
|
|
333
635
|
npm run docs:generate
|