LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

declick

Compile APIs, MCP servers, and databases into agent-ready CLIs

TLDR

Install the global CLI (needs Node 24 or newer)
$ npm i -g declick
copy
Wire declick into local agent clients (PATH, MCP adapters, rules)
$ declick setup
copy
Compile an OpenAPI spec into a named adapter
$ declick add [https://petstore3.swagger.io/api/v3/openapi.json] --name [petstore]
copy
List an adapter's verbs
$ declick run [petstore] describe
copy
Call a verb and keep only named fields
$ declick run [petstore] [get-user-by-name] [user1] --fields [username,email]
copy
Preview a mutating call without sending it
$ declick run [petstore] [get-pet-by-id] [7] --dry-run
copy
Filter a list before it reaches the model
$ declick run [shop] [list-pets] --where [status=sold] --limit [20]
copy
Compile a SQLite database into list/get/insert verbs
$ declick add sqlite:[path/to/data.db] --name [db]
copy
Check Node, PATH, engines, and agent integration
$ declick doctor
copy

SYNOPSIS

declick command [options] [args]

DESCRIPTION

declick compiles an API spec, MCP server, database, CLI, web page, or (on Windows) desktop window into a named shell adapter. Each adapter exposes verbs that return one JSON envelope and one of five exit codes, so an agent can call tools through the shell instead of carrying a full MCP tool listing on every turn.Every engine, and declick itself, honors the same output contract: describe for a compact surface, --json for a stable envelope, --fields / --limit / --where to cut the payload before it reaches a model, and --dry-run on mutating verbs. declick add writes ~/.declick/name/manifest.json, a two-line launcher under ~/.declick/bin, and a SKILL.md into agent skill directories that already exist (~/.claude/skills, and ~/.codex/skills, ~/.hermes/skills, ~/.openclaw/skills, ~/.agents/skills when present).The ten built-in engines (zero runtime npm dependencies, Node 24+) are openapi, postman, har, graphql, mcp, sqlite, cli, web, desktop, and compose. Auth is never stored in a manifest: required names are read from the process environment, then ~/.creds/vault.env. Optional DashClaw governance and a local policy.json can block mutating verbs with exit 3.

PARAMETERS

setup

Put ~/.declick/bin on PATH, adopt the agent's MCP servers as adapters, write a rules block to CLAUDE.md or AGENTS.md, and (Claude Code) install a PreToolUse hook. --dry-run prints the plan; --revert restores a byte-exact snapshot.
add source --name n
Compile a source into ~/.declick/n (manifest, launcher, SKILL.md). Sources include OpenAPI/Swagger URLs or files, Postman/Insomnia collections, HAR captures, GraphQL schemas, mcp:command, sqlite:path, cli:binary, web:url, app:window (Windows), and compose:chain.json. --verbs / --tag subset a large spec; --engine overrides detection; --force overwrites a name collision; --dry-run compiles and lints without writing.
run name verb [args]
Invoke a compiled verb without putting the adapter on PATH. Once ~/.declick/bin is on PATH, the short form name verb [args] is equivalent.
describe name
Print the adapter surface (verbs, required args, base URL). Pages itself over about 2000 characters. --full, --verb v, --grep text, --offset N, --limit N narrow the listing.
list
Every adapter: engine, source, verb names, auth keys, last run, last error.
engines
Built-in engines. --source x reports which engine a source would use before anything is written.
doctor
Node version, home, PATH, skill dirs, vault, deskclaw, Claude CLI, governance, engine readiness, and whether setup has run. Exit 1 only when Node is too old.
path --install
Put ~/.declick/bin on PATH for new shells. --dry-run previews without writing.
daemon [start | stop | status]
Keep stdio MCP servers warm between runs. HTTP MCP adapters never use it.
defaults name
Per-adapter flag defaults in ~/.declick/name/defaults.json. --set k=v, --unset k, --clear, optional --verb v.
policy
Inspect ~/.declick/policy.json. --check adapter verb shows which rule wins; --example prints a starter file.
auth name
Report which required env keys are present (process environment, then ~/.creds/vault.env) and from where. Exit 4 when any is missing.
lint name / build name / skill [name]
Check the contract, recompile from the stored source, or regenerate SKILL.md. skill --print writes one skill to stdout.
remove name [verb]
Delete an adapter (manifest, launcher, skill) or one desktop verb.
export name / import [file|-]
Round-trip a JSON bundle of manifest plus recipes. declick export n | declick import - rebuilds on another machine.
compose name
Print a compose chain. --steps file compiles a chain of existing adapter verbs into one verb.
audit
Read ~/.declick/audit.jsonl newest first. --adapter n, --since 10m, --failed, --sum.
ui
Local page at http://127.0.0.1:4870 (loopback only). --open, --port N, --allow-authoring.
uninstall --yes
Revert setup if it ran, delete ~/.declick, and print the npm rm -g declick line. Refuses without --yes.
--json
Envelope on stdout. Default when stdout is not a TTY. Success: {ok:true, data, meta}. Failure: {ok:false, error, exit}. --json false forces text.
--fields a,b
Project named fields (dotted paths allowed). A list that matches nothing is exit 1.
--limit N
Cap list output (default 50). Must be a positive integer.
--where k=v
Filter a list before --fields and --limit. Repeatable. Operators: =, !=, ~ (regex), >, >=, <, <=, =* (present).
--rows path
Unwrap a dotted array field inside a response object.
--dry-run
Print what a mutating verb or write command would do; set meta.dryRun: true.
--each file
Run the verb once per NDJSON/JSON-array item (- for stdin). One envelope; exit is 0 only when every item succeeded.
--cache seconds
Answer a read-only verb from a stored response younger than this. Exit 1 on a mutating verb.
--max-bytes N
Ceiling on data bytes (default 8192, 0 off). Over the cap: meta.truncated and meta.capped, exit still 0.
--no-defaults
Ignore ~/.declick/name/defaults.json for this call.
--header 'K: V', --base-url url, --body @file, --retry N, --timeout ms, --verbose, --curl
HTTP request flags on openapi, postman, and har verbs.
commands / version / --help
Command surface as data, build version, or one command's flags and examples.

CONFIGURATION

~/.declick/

Default home (DECLICK_HOME). Adapters, launchers, cache, audit log, daemon socket, and setup snapshots.
~/.declick/name/manifest.json
Compiled contract. Regenerated by declick build; do not edit by hand.
~/.declick/name/defaults.json
Optional per-adapter / per-verb flag defaults. Survives build; deleted with remove.
~/.declick/policy.json
Local allow/warn/block rules (globs on adapter and verb). First match wins. Invalid JSON fails closed (every run exits 1). DECLICK_POLICY moves the path.
~/.declick/audit.jsonl
One JSON line per verb invocation. DECLICK_AUDIT=off disables it.
~/.declick/bin/
Generated adapter launchers. declick path --install (and setup) put this directory on PATH.
DECLICK_MAX_BYTES, DECLICK_CACHE, DECLICK_DEFAULTS, DECLICK_TIMEOUT_MS, DECLICK_DAEMON_IDLE_MS
Output cap, response cache, defaults, HTTP/MCP timeout, and daemon idle (ms). See declick doctor and the upstream reference for the full list.
DASHCLAW_API_KEY, DASHCLAW_URL
Optional remote guard for mutating verbs. No key means verbs run and the envelope records governance.enabled: false.

EXIT CODES

0

Success.
1
Error (bad flags, invalid input, Node too old, unreadable policy).
2
Not found (adapter, verb, window, or element).
3
Blocked (local policy, DashClaw guard, unarmed deskclaw, or STOP).
4
Auth needed (required env key missing).

CAVEATS

Requires Node 24 or newer; an older runtime exits 1 with one line naming the version it found. Published on npm as declick; distro packages are uncommon.Releases after 0.3.0 use the Elastic License 2.0 (use and modify; do not offer it as a managed service). 0.3.0 on npm was MIT.The desktop engine shells out to deskclaw and is Windows-only; declick engines reports it as not ready on other platforms. author / repair need the Claude Code CLI on PATH. declick ui binds loopback only and is a local control page, not a public server.

HISTORY

declick is a Node CLI by ucsandman, first published on GitHub in September 2026 (npm package declick, homepage declick.dev). It compiles OpenAPI, MCP, SQLite, and related sources into shell verbs with a shared output contract aimed at coding agents. Version 0.6.x added compose chains, a warm MCP daemon, local policy, and agent setup / uninstall.

SEE ALSO

curl(1), openapi-generator(1), sqlite3(1), jq(1), npm(1), claude(1)

RESOURCES

Braincup
Open source brain training for math, memory and focus
Braincup mini-games
41 mini-games · Apache-2.0
No ads · No tracking
Play in browser
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid
277 stars
From the maker of Linux Command Library
Copied to clipboard
Braincup
Open source brain training for math, memory and focus. 41 mini-games, from mental arithmetic to Sudoku, N-Back and Solo Chess.
Apache-2.0 licensed · No ads · No tracking · No account
From the maker of Linux Command Library
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid