Commands for inspecting and managing your function after it's deployed — database contents, storage files, deployment status, generated documentation, and developer skills for AI coding assistants.
Run any command with --help for the full flag list.
Show the current status and details of a deployed function.
sinch functions status # show status of the function in cwd
sinch functions status <function-id> # target a specific function
sinch functions status --follow # watch status changes in real timePrints the function's ID, name, runtime, deployment status (Running, Building, Failed, etc.), created and updated times, and URL. --json prints { function, deployment }: the function record and its deployment status. Use this when sinch functions logs shows nothing — first check that the function is actually up.
Generate a README.md from the current function's metadata and detected handlers.
sinch functions docsInspects sinch.json, the exported handlers (Node) or controllers (C#), and writes a README.md that explains what the function does, which callbacks it implements, and how to invoke them locally. Safe to re-run — it regenerates from source each time.
sinch functions deploy prompts to run this automatically unless you pass --no-docs.
Download and upload the function's SQLite database. Useful for pulling production data down to inspect locally, or pushing a seeded database up.
sinch functions db download # download the deployed db to ./function.db
sinch functions db download --output backup.db # custom local path
sinch functions db upload <function-id> ./seed.db # upload a local SQLite file to the deployed function
sinch functions db upload <function-id> ./seed.db --force # overwrite the existing databasedb download targets the function in sinch.json by default; pass a [function-id] positional to target a different function. db upload currently needs the function ID as its first argument: with only a file path, the CLI stops with missing required argument 'localPath'.
With --json, db download prints { functionId, path, size } and db upload prints { functionId, path, size, uploaded: true }.
For interactive querying, download the database and use sqlite3 or any SQLite client locally.
Manage the function's blob storage. Useful for inspecting recordings, reports, or other files your function wrote to context.storage.
sinch functions storage list # list all files
sinch functions storage list recordings/ # list under a prefix
sinch functions storage download reports/daily.json # download a file
sinch functions storage download reports/daily.json ./local.json # with a local path
sinch functions storage upload ./data.json reports/new.json # upload a local file
sinch functions storage delete reports/old.json # delete a file
sinch functions storage delete reports/old.json --force # skip the confirmationThe commands target the blob storage of the deployed function in the current directory. They take no function ID: run them where sinch.json has a functionId. ls and rm are aliases for list and delete.
With --json, each command prints one document and never prompts:
| Command | Output |
|---|---|
list | { files: [{ key, size, lastModified }] } |
upload | { functionId, key, size, uploaded: true } |
download | { functionId, key, path, size } |
delete | { functionId, key, deleted: true } (needs --force) |
Install and manage Sinch developer skills for AI coding assistants (Claude Code, Cursor, Copilot, etc.). Skills give the assistant structured knowledge of how to build and debug Sinch Functions without you having to paste docs into the prompt.
sinch skills list # show installed skills (global; --project for this project)
sinch skills install # install Sinch skills, choosing which ones interactively
sinch skills install --all # install every Sinch skill for every agent, no prompts
sinch skills update # pull latest versions
sinch skills uninstall # remove every installed skill, not only Sinch onesThe commands take no skill name. install installs from the sinch/skills repository, globally unless you pass --project. uninstall runs npx skills remove --all -g (--all without -g under --project). It removes every skill installed in that scope, for every agent and from any source, not only Sinch skills. It does not ask first.
With --json, each command prints one document and never prompts:
| Command | Output |
|---|---|
list | { skills: [...] }, one plain-text line of the skills CLI output per entry (unstructured) |
install | { installed: true, scope }. Needs --all, because the skills CLI otherwise asks which skills to install |
update | { updated: true } |
uninstall | { uninstalled: true, scope } |
scope is global, or project with --project.
Skills are distributed as part of the Sinch ecosystem and installed into the appropriate config directory for your AI assistant of choice.
sinch functionscommands — init, dev, deploy, download, delete, list, logs- Monitoring — streaming logs with the interactive TUI
- Deployment concept — what
Running/Building/Failedactually mean



