CLI ↔ SDK parity
Every public SDK method on knowledge, memory, tools, toolsets, databases, approvals, secrets, and prompts, and the CLI command that reaches it
| SDK method | CLI command | Status |
|---|---|---|
sdk.knowledge.ask() | protobox ask | ok |
sdk.knowledge.askPublic() | n/a: for anonymous embedders asking someone ELSE's public pack — the pack's own page (app.protobox.ai/p//) is the intended surface; a workspace owner asking their own KB already has ask | n/a |
sdk.knowledge.create() | protobox kb add | ok |
sdk.knowledge.delete() | protobox kb remove | ok |
sdk.knowledge.deleteAll() | protobox kb delete-all | ok |
sdk.knowledge.deleteAllPreview() | protobox kb delete-all | ok |
sdk.knowledge.exportAll() | protobox kb export | ok |
sdk.knowledge.exportStatus() | protobox kb export | ok |
sdk.knowledge.gallery() | n/a: browsing the public gallery is the admin page's job (app.protobox.ai/p) — kb publish --listed covers the write side; there's no read-side CLI use case yet | n/a |
sdk.knowledge.get() | protobox kb get | ok |
sdk.knowledge.getPublicPack() | n/a: read-only pack preview has no CLI surface yet — the public page (app.protobox.ai/p//) is the intended way to view it | n/a |
sdk.knowledge.import() | protobox kb import | ok |
sdk.knowledge.importStatus() | protobox kb import | ok |
sdk.knowledge.list() | protobox kb | ok |
sdk.knowledge.listStale() | protobox kb stale | ok |
sdk.knowledge.listSynced() | protobox kb sync | ok |
sdk.knowledge.proposalStatus() | protobox kb proposal-status | ok |
sdk.knowledge.proposeAppend() | protobox kb propose | ok |
sdk.knowledge.proposeUpdate() | protobox kb propose | ok |
sdk.knowledge.publishFolder() | protobox kb publish | ok |
sdk.knowledge.search() | protobox kb | ok |
sdk.knowledge.setFolderAccess() | protobox kb folder access | ok |
sdk.knowledge.setOwner() | protobox kb owner | ok |
sdk.knowledge.taskStatus() | protobox kb add | ok |
sdk.knowledge.unpublishFolder() | protobox kb unpublish | ok |
sdk.knowledge.unverify() | protobox kb unverify | ok |
sdk.knowledge.update() | n/a: no destructive-edit CLI surface yet — re-add via kb add/kb sync, or edit at app.protobox.ai | n/a |
sdk.knowledge.upsertFile() | protobox kb sync | ok |
sdk.knowledge.verify() | protobox kb verify | ok |
sdk.knowledge.sources.github.add() | protobox kb sync-repo | ok |
sdk.knowledge.sources.github.list() | n/a: no CLI listing of connected repo sources yet — kb sync-repo covers connect+sync | n/a |
sdk.knowledge.sources.github.remove() | n/a: no CLI surface to disconnect a repo source yet | n/a |
sdk.knowledge.sources.github.sync() | protobox kb sync-repo | ok |
sdk.knowledge.sources.gdrive.add() | protobox kb sync-drive | ok |
sdk.knowledge.sources.gdrive.list() | n/a: no CLI listing of connected Drive folder sources yet — kb sync-drive covers connect+sync | n/a |
sdk.knowledge.sources.gdrive.remove() | n/a: no CLI surface to disconnect a Drive folder source yet | n/a |
sdk.knowledge.sources.gdrive.sync() | protobox kb sync-drive | ok |
sdk.memory.entities() | protobox memory entities | ok |
sdk.memory.entity() | protobox memory entity | ok |
sdk.memory.forget() | protobox memory forget | ok |
sdk.memory.history() | protobox memory history | ok |
sdk.memory.import() | protobox memory import | ok |
sdk.memory.listRecent() | protobox memory list | ok |
sdk.memory.recall() | protobox memory recall | ok |
sdk.memory.search() | n/a: memory recall covers the common top-K case; minScore filtering not yet exposed as a flag | n/a |
sdk.memory.store() | protobox memory store | ok |
sdk.tools.create() | n/a: SDK-only tool write surface (CZ1) — authoring a workspace tool is done in code or at app.protobox.ai; CLI verbs tracked separately | n/a |
sdk.tools.createBatch() | n/a: SDK-only tool write surface (CZ1) — bulk creation with partial success is a programmatic shape, not an interactive one; CLI verbs tracked separately | n/a |
sdk.tools.createDefaults() | n/a: SDK-only tool write surface (CZ1) — default-tool provisioning runs at workspace setup, not from a shell; CLI verbs tracked separately | n/a |
sdk.tools.delete() | n/a: SDK-only tool write surface (CZ1) — no CLI delete surface yet; delete at app.protobox.ai. CLI verbs tracked separately | n/a |
sdk.tools.execute() | protobox tools run | ok |
sdk.tools.executeBatch() | n/a: one round-trip for a model turn's several tool calls — a runtime concern inside an agent loop; an interactive shell issues one tools run per action | n/a |
sdk.tools.executeById() | n/a: SDK-only tool write surface (CZ1) — the CLI shape is tools run (by action name); by-id execution is for runtimes holding a tool id. CLI verbs tracked separately | n/a |
sdk.tools.forLLM() | n/a: framework adapter factory (OpenAI/Anthropic/Vercel/LangChain/Google) for embedding an LLM tool loop directly in code — no CLI shape | n/a |
sdk.tools.generate() | n/a: SDK-only tool write surface (CZ1) — natural-language tool generation is an authoring-time code path; CLI verbs tracked separately | n/a |
sdk.tools.get() | n/a: SDK-only tool write surface (CZ1) — tools get reads an ACTION's schema, not a workspace tool row; CLI verbs tracked separately | n/a |
sdk.tools.getSchema() | protobox tools get | ok |
sdk.tools.list() | n/a: flat catalog listing with ids for runtimes wiring by name (P1 conformance) - the CLI shape is tools (search) which returns the same rows | n/a |
sdk.tools.listTools() | n/a: superseded by tools.search() (cross-catalog GET /actions/search) — tools/tools get/tools run all drive through search, not per-integration listTools | n/a |
sdk.tools.propose() | n/a: SDK-only tool write surface (CZ1) — proposing tools from a raw OpenAPI/Postman document is an authoring-time code path; CLI verbs tracked separately | n/a |
sdk.tools.proposeFromUrl() | n/a: SDK-only tool write surface (CZ1) — spec-URL proposal is an authoring-time code path; CLI verbs tracked separately | n/a |
sdk.tools.search() | protobox tools | ok |
sdk.tools.update() | n/a: SDK-only tool write surface (CZ1) — no CLI edit surface yet; update at app.protobox.ai. CLI verbs tracked separately | n/a |
sdk.toolsets.addSkill() | protobox toolsets add-skill | ok |
sdk.toolsets.create() | protobox toolsets create | ok |
sdk.toolsets.delete() | protobox toolsets delete | ok |
sdk.toolsets.get() | protobox toolsets get | ok |
sdk.toolsets.list() | protobox toolsets list | ok |
sdk.toolsets.setToolAccess() | protobox toolsets access | ok |
sdk.toolsets.setToolPolicy() | protobox toolsets policy | ok |
sdk.toolsets.tools() | n/a: SDK-only read of a toolset's member tools (incl. includeHidden) — toolsets get already prints the toolset; CLI verbs tracked separately | n/a |
sdk.toolsets.update() | protobox toolsets add | ok |
sdk.databases.add() | protobox db add | ok |
sdk.databases.addQuery() | protobox db query add | ok |
sdk.databases.list() | protobox db list | ok |
sdk.databases.listQueries() | protobox db query list | ok |
sdk.databases.remove() | protobox db remove | ok |
sdk.databases.removeQuery() | protobox db query remove | ok |
sdk.approvals.approve() | protobox approvals approve | ok |
sdk.approvals.deny() | protobox approvals deny | ok |
sdk.approvals.get() | n/a: approvals list already returns full rows; no single-approval fetch command yet | n/a |
sdk.approvals.list() | protobox approvals list | ok |
sdk.secrets.delete() | protobox secrets remove | ok |
sdk.secrets.list() | protobox secrets list | ok |
sdk.secrets.set() | protobox secrets set | ok |
sdk.prompts.create() | protobox skills create | ok |
sdk.prompts.delete() | protobox skills remove | ok |
sdk.prompts.get() | protobox skills get | ok |
sdk.prompts.getRatings() | protobox skills ratings | ok |
sdk.prompts.importGithub() | protobox skills import | ok |
sdk.prompts.list() | protobox skills | ok |
sdk.prompts.rate() | protobox skills rate | ok |
sdk.prompts.update() | protobox skills edit | ok |