Skip to content

Function utilities

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.

sinch functions status

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 time

Prints 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.

sinch functions docs

Generate a README.md from the current function's metadata and detected handlers.

sinch functions docs

Inspects 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.

sinch functions db

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 database

db 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.

sinch functions storage

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 confirmation

The 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:

CommandOutput
list{ files: [{ key, size, lastModified }] }
upload{ functionId, key, size, uploaded: true }
download{ functionId, key, path, size }
delete{ functionId, key, deleted: true } (needs --force)

sinch skills

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 ones

The 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:

CommandOutput
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.

We'd love to hear from you!
Rate this content: