# Bitbucket on boxd

> Bitbucket is a Git-based code hosting and collaboration platform supporting private and public repositories, enabling teams to manage and review code through pull requests and integrations.

- Page: https://boxd.sh/integrations/bitbucket/
- CLI: `run bitbucket` (110 commands, 64 marked common)
- SDK: `import { bitbucket } from "@boxd/run"`; every parameter and response type is at `@boxd/run/bitbucket`
- Triggers: none
- Connect: `run auth bitbucket` (Sign in with Bitbucket), or https://app.boxd.sh/integrations/detail/bitbucket
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth bitbucket      # once: prints a link to connect your account
run bitbucket           # list its commands
run bitbucket list-snippets
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, bitbucket } from "@boxd/run";

every("1 hour", async () => {
  const result = await bitbucket.listSnippets({});
  console.log(result);
});
```

Run it with `run bitbucket.run.ts`. Bitbucket has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run bitbucket <command> --help` lists the optional ones. "common" marks what `run bitbucket` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `approve-pull-request` ·common | `bitbucket.approvePullRequest()` | `--pull-request-id` `--repo-slug` `--workspace` | 0 | Approve a pull request as the authenticated user |
| `browse-repository-path` ·common | `bitbucket.browseRepositoryPath()` | `--repo-slug` `--workspace` | 8 | Retrieve content for a file path or browse directory contents at a specified revision in a Bitbucket repository |
| `create-branch` ·common | `bitbucket.createBranch()` | `--name` `--repo-slug` `--target-hash` `--workspace` | 0 | Creates a new branch in a Bitbucket repository from a target commit hash; the branch name must be unique, adhere to Bitbucket's naming conventions, and not include the 'refs/heads/' prefix |
| `create-issue` ·common | `bitbucket.createIssue()` | `--content` `--repo-slug` `--title` `--workspace` | 7 | Creates a new issue in a Bitbucket repository, setting the authenticated user as reporter; ensures assignee (if provided) has repository access, and that any specified milestone, version, or… |
| `create-issue-comment` ·common | `bitbucket.createIssueComment()` | `--content` `--issue-id` `--repo-slug` `--workspace` | 0 | Adds a new comment with markdown support to an existing Bitbucket issue |
| `create-pull-request` ·common | `bitbucket.createPullRequest()` | `--repo-slug` `--source-branch` `--title` `--workspace` | 4 | Creates a new pull request in a specified Bitbucket repository, ensuring the source branch exists and is distinct from the (optional) destination branch |
| `create-pull-request-comment` ·common | `bitbucket.createPullRequestComment()` | `--content-raw` `--pull-request-id` `--repo-slug` `--workspace` | 2 | Creates a new comment on a Bitbucket pull request |
| `create-repositories-commit-reports-annotations` | `bitbucket.createRepositoriesCommitReportsAnnotations()` | `--annotations` `--commit` `--repo-slug` `--reportId` `--workspace` | 0 | Adds multiple annotations to a commit report in bulk |
| `create-repositories-commits2` ·common | `bitbucket.createRepositoriesCommits2()` | `--repo-slug` `--revision` `--workspace` | 5 | List commits from a revision using POST method |
| `create-repository` ·common | `bitbucket.createRepository()` | `--repo-slug` `--workspace` | 7 | Creates a new Bitbucket 'git' repository in a specified workspace, defaulting to the workspace's oldest project if `project_key` is not provided |
| `create-snippet-comment` | `bitbucket.createSnippetComment()` | `--content` `--encoded-id` `--workspace` | 1 | Posts a new top-level comment or a threaded reply to an existing comment on a specified Bitbucket snippet |
| `create-teams-pipelines-config-variables` | `bitbucket.createTeamsPipelinesConfigVariables()` | `--key` `--username` `--value` | 1 | Creates a team-level pipeline configuration variable in Bitbucket |
| `create-users-pipelines-config-variables` | `bitbucket.createUsersPipelinesConfigVariables()` | `--key` `--selected-user` `--value` | 1 | Creates a user-level pipeline variable for Bitbucket pipelines |
| `decline-pull-request` ·common | `bitbucket.declinePullRequest()` | `--pull-request-id` `--repo-slug` `--workspace` | 0 | Decline a Bitbucket Cloud pull request via the REST API |
| `delete-commit-comment` ·common | `bitbucket.deleteCommitComment()` | `--comment-id` `--commit` `--repo-slug` `--workspace` | 0 | Permanently deletes a specific comment on a commit |
| `delete-issue` ·common | `bitbucket.deleteIssue()` | `--issue-id` `--repo-slug` `--workspace` | 0 | Permanently deletes a specific issue, identified by its `issue_id`, from the repository specified by `repo_slug` within the given `workspace` |
| `delete-pull-request-comment` ·common | `bitbucket.deletePullRequestComment()` | `--comment-id` `--pull-request-id` `--repo-slug` `--workspace` | 0 | Permanently deletes a specific pull request comment (top-level, inline, or threaded reply) |
| `delete-repositories-commit-reports-annotations` | `bitbucket.deleteRepositoriesCommitReportsAnnotations()` | `--annotationId` `--commit` `--repo-slug` `--reportId` `--workspace` | 0 | Deletes a single annotation matching the provided ID from a commit report |
| `delete-repository` ·common | `bitbucket.deleteRepository()` | `--repo-slug` `--workspace` | 0 | Permanently deletes a specified Bitbucket repository; this action is irreversible and does not affect forks |
| `delete-snippets-watch` | `bitbucket.deleteSnippetsWatch()` | `--encoded-id` `--workspace` | 0 | Stops watching a specific snippet |
| `delete-user-pipeline-variable` | `bitbucket.deleteUserPipelineVariable()` | `--username` `--variable-uuid` | 0 | Permanently deletes a user-level pipeline configuration variable identified by its UUID |
| `get-branch` ·common | `bitbucket.getBranch()` | `--name` `--repo-slug` `--workspace` | 0 | Retrieves detailed information about a specific branch in a Bitbucket repository |
| `get-commit-build-status` | `bitbucket.getCommitBuildStatus()` | `--commit` `--key` `--repo-slug` `--workspace` | 0 | Get a specific build status for a commit in Bitbucket |
| `get-commit-changes` ·common | `bitbucket.getCommitChanges()` | `--repo-slug` `--spec` `--workspace` | 2 | Retrieve a page of changes made in a specified commit, showing all changed files with their change statistics (lines added/removed, status) |
| `get-commit-comment` ·common | `bitbucket.getCommitComment()` | `--comment-id` `--commit` `--repo-slug` `--workspace` | 0 | Retrieves a specific comment from a commit by its ID |
| `get-commit-diff` ·common | `bitbucket.getCommitDiff()` | `--repo-slug` `--spec` `--workspace` | 7 | Retrieve the unified diff between two provided revisions or for a single commit in a Bitbucket repository |
| `get-current-user2` ·common | `bitbucket.getCurrentUser2()` | — | 0 | Retrieve complete profile information for the currently authenticated Bitbucket user |
| `get-deployment-environment-variables` | `bitbucket.getDeploymentEnvironmentVariables()` | `--environment-uuid` `--repo-slug` `--workspace` | 0 | Retrieves deployment environment level variables for a specific Bitbucket repository environment |
| `get-file-from-repository` ·common | `bitbucket.getFileFromRepository()` | `--commit` `--path` `--repo-slug` `--workspace` | 0 | Retrieves a specific file's content from a Bitbucket repository at a given commit (hash, branch, or tag), failing if the file path is invalid for that commit |
| `get-hook-events` | `bitbucket.getHookEvents()` | `--subject-type` | 0 | Retrieves a paginated list of all valid webhook events for a specified entity type (repository or workspace) |
| `get-openid-configuration` | `bitbucket.getOpenidConfiguration()` | `--workspace` | 0 | Retrieves the OpenID Connect discovery configuration for Bitbucket Pipelines OIDC |
| `get-pull-request` ·common | `bitbucket.getPullRequest()` | `--pull-request-id` `--repo-slug` `--workspace` | 0 | Get a single pull request by ID with complete details |
| `get-pull-request-comment` ·common | `bitbucket.getPullRequestComment()` | `--comment-id` `--pull-request-id` `--repo-slug` `--workspace` | 0 | Retrieve a specific comment from a pull request by its ID |
| `get-pull-request-commits` ·common | `bitbucket.getPullRequestCommits()` | `--pull-request-id` `--repo-slug` `--workspace` | 2 | Retrieve commits for a specified pull request |
| `get-pull-request-diff` ·common | `bitbucket.getPullRequestDiff()` | `--pull-request-id` `--repo-slug` `--workspace` | 1 | Fetch the unified diff for a Bitbucket pull request (follows 302 redirect to repository diff) |
| `get-pull-request-diffstat` ·common | `bitbucket.getPullRequestDiffstat()` | `--pull-request-id` `--repo-slug` `--workspace` | 2 | Get the diffstat for a Bitbucket pull request, showing all changed files with their change statistics (lines added/removed, status) |
| `get-raw-file-content` ·common ·deprecated | `bitbucket.getRawFileContent()` | `--commit` `--path` `--repo-slug` `--workspace` | 0 | Use get-file-from-repository instead |
| `get-repositories-branching-model` ·common | `bitbucket.getRepositoriesBranchingModel()` | `--repo-slug` `--workspace` | 0 | Return the branching model as applied to the repository |
| `get-repositories-commit` ·common | `bitbucket.getRepositoriesCommit()` | `--commit` `--repo-slug` `--workspace` | 0 | Retrieve detailed information about a specific commit in a Bitbucket repository |
| `get-repositories-commit-comments` | `bitbucket.getRepositoriesCommitComments()` | `--commit` `--repo-slug` `--workspace` | 2 | Retrieves all comments on a specific commit in a Bitbucket repository |
| `get-repositories-commit-report` | `bitbucket.getRepositoriesCommitReport()` | `--commit` `--repo-slug` `--report-id` `--workspace` | 0 | Returns a single report matching the provided ID from a commit |
| `get-repositories-commit-reports` | `bitbucket.getRepositoriesCommitReports()` | `--commit` `--repo-slug` `--workspace` | 0 | Get reports linked to a specific commit |
| `get-repositories-commit-reports-annotations` | `bitbucket.getRepositoriesCommitReportsAnnotations()` | `--annotationId` `--commit` `--repo-slug` `--reportId` `--workspace` | 0 | Returns a single annotation matching the provided ID from a commit report |
| `get-repositories-commit-statuses` | `bitbucket.getRepositoriesCommitStatuses()` | `--commit` `--repo-slug` `--workspace` | 0 | Returns all build statuses (e.g., CI/CD pipeline results) for a specific commit |
| `get-repositories-effective-branching-model` ·common | `bitbucket.getRepositoriesEffectiveBranchingModel()` | `--repo-slug` `--workspace` | 0 | Retrieves the effective branching model for a Bitbucket repository, showing which branching model is currently applied (including any inheritance from project-level settings) |
| `get-repositories-environments2` | `bitbucket.getRepositoriesEnvironments2()` | `--environment-uuid` `--repo-slug` `--workspace` | 0 | Retrieve detailed information about a specific deployment environment in a Bitbucket repository |
| `get-repositories-filehistory` ·common | `bitbucket.getRepositoriesFilehistory()` | `--commit` `--path` `--repo-slug` `--workspace` | 5 | Returns a paginated list of commits that modified the specified file |
| `get-repositories-issues-vote` | `bitbucket.getRepositoriesIssuesVote()` | `--issue-id` `--repo-slug` `--workspace` | 0 | Check whether the authenticated user has voted for a specific issue in a Bitbucket repository |
| `get-repositories-merge-base` | `bitbucket.getRepositoriesMergeBase()` | `--repo-slug` `--revspec` `--workspace` | 0 | Get the merge base (best common ancestor) between two commits in a Bitbucket repository |
| `get-repositories-pipelines-config-caches` | `bitbucket.getRepositoriesPipelinesConfigCaches()` | `--repo-slug` `--workspace` | 0 | Retrieves the repository pipelines caches |
| `get-repositories-pipelines-config-runners` | `bitbucket.getRepositoriesPipelinesConfigRunners()` | `--repo-slug` `--workspace` | 0 | Retrieves the list of self-hosted runners configured for a repository's pipelines |
| `get-repositories-pipelines-config-schedules` | `bitbucket.getRepositoriesPipelinesConfigSchedules()` | `--repo-slug` `--workspace` | 0 | Retrieves configured pipeline schedules for a Bitbucket repository |
| `get-repositories-pipelines-config-ssh-known-hosts` | `bitbucket.getRepositoriesPipelinesConfigSshKnownHosts()` | `--repo-slug` `--workspace` | 0 | Retrieves repository-level SSH known hosts configured for Bitbucket Pipelines |
| `get-repositories-pipelines-config-variables` | `bitbucket.getRepositoriesPipelinesConfigVariables()` | `--repo-slug` `--workspace` | 4 | Retrieves repository-level pipeline variables for a specific Bitbucket repository |
| `get-repositories-pipelines-steps` | `bitbucket.getRepositoriesPipelinesSteps()` | `--pipeline-uuid` `--repo-slug` `--workspace` | 0 | Retrieves all steps for a given pipeline |
| `get-repositories-pipelines2` | `bitbucket.getRepositoriesPipelines2()` | `--pipeline-uuid` `--repo-slug` `--workspace` | 0 | Retrieve a specified pipeline from a Bitbucket repository |
| `get-repositories-pullrequests-activity` | `bitbucket.getRepositoriesPullrequestsActivity()` | `--repo-slug` `--workspace` | 2 | Get paginated activity log for all pull requests in a repository |
| `get-repositories-pullrequests-comments` | `bitbucket.getRepositoriesPullrequestsComments()` | `--pull-request-id` `--repo-slug` `--workspace` | 3 | Retrieves a paginated list of comments on a specific pull request in a Bitbucket repository |
| `get-repositories-pullrequests-statuses` ·common | `bitbucket.getRepositoriesPullrequestsStatuses()` | `--pull-request-id` `--repo-slug` `--workspace` | 2 | Returns all build statuses (e.g., CI/CD pipeline results) for a specific pull request |
| `get-repositories-refs` ·common | `bitbucket.getRepositoriesRefs()` | `--repo-slug` `--workspace` | 4 | Returns the branches and tags in the repository |
| `get-repositories-refs-tags` ·common | `bitbucket.getRepositoriesRefsTags()` | `--name` `--repo-slug` `--workspace` | 0 | Retrieves detailed information about a specific tag in a Bitbucket repository |
| `get-repositories-src` ·common | `bitbucket.getRepositoriesSrc()` | `--repo-slug` `--workspace` | 1 | Lists the contents of the root directory on the repository's main branch without needing to specify a commit or branch |
| `get-repositories-watchers` | `bitbucket.getRepositoriesWatchers()` | `--repo-slug` `--workspace` | 0 | Retrieves a paginated list of all the watchers on the specified repository |
| `get-repository` ·common | `bitbucket.getRepository()` | `--repo-slug` `--workspace` | 0 | Retrieves detailed information about a specific repository in a Bitbucket workspace |
| `get-repository-patch` ·common | `bitbucket.getRepositoryPatch()` | `--repo-slug` `--spec` `--workspace` | 1 | Retrieve the git patch content for a Bitbucket repository at a specified revision or commit range |
| `get-snippet` ·common | `bitbucket.getSnippet()` | `--encoded-id` `--workspace` | 1 | Retrieves a specific Bitbucket snippet by its encoded ID from an existing workspace, returning its metadata and file structure |
| `get-snippets-watch` | `bitbucket.getSnippetsWatch()` | `--encoded-id` `--workspace` | 0 | Checks if the current user is watching a specific snippet |
| `get-ssh-latest-keys` | `bitbucket.getSshLatestKeys()` | `--username` | 2 | Retrieves a paginated list of SSH keys for a specified Bitbucket user |
| `get-user` ·common | `bitbucket.getUser()` | `--selected-user` | 0 | Retrieves public profile information for a specific Bitbucket user by username or UUID |
| `get-user-emails` | `bitbucket.getUserEmails()` | — | 0 | Returns all the authenticated user's email addresses, both confirmed and unconfirmed |
| `get-user-emails2` | `bitbucket.getUserEmails2()` | `--email` | 0 | Retrieves details about a specific email address for the authenticated user |
| `get-user-permissions-repositories` ·common | `bitbucket.getUserPermissionsRepositories()` | — | 2 | Returns an object for each repository the caller has explicit access to, including their permission level |
| `get-user-permissions-workspaces` ·common | `bitbucket.getUserPermissionsWorkspaces()` | — | 3 | Retrieves workspace memberships and permission levels for the authenticated user |
| `get-user-workspaces` ·common | `bitbucket.getUserWorkspaces()` | — | 1 | Retrieve all workspaces accessible to the authenticated user |
| `get-workspace` ·common | `bitbucket.getWorkspace()` | `--workspace` | 0 | Retrieves detailed information about a specific Bitbucket workspace |
| `get-workspaces-pullrequests` ·common | `bitbucket.getWorkspacesPullrequests()` | `--selected-user` `--workspace` | 3 | Get all workspace pull requests authored by a specified user |
| `get-workspaces-search-code` ·common | `bitbucket.getWorkspacesSearchCode()` | `--search-query` `--workspace` | 3 | Search for code in the repositories of the specified workspace |
| `list-branches` ·common | `bitbucket.listBranches()` | `--repo-slug` `--workspace` | 4 | Lists branches in a Bitbucket repository with optional server-side filtering by name pattern (BBQL) and sorting |
| `list-commits` ·common | `bitbucket.listCommits()` | `--repo-slug` `--workspace` | 5 | Retrieve a page of commits from a Bitbucket repository |
| `list-commits-from-revision` ·common | `bitbucket.listCommitsFromRevision()` | `--repo-slug` `--revision` `--workspace` | 5 | List commits starting from a specific revision in a Bitbucket repository |
| `list-commits-on-master` ·common | `bitbucket.listCommitsOnMaster()` | `--repo-slug` `--workspace` | 2 | Lists commits on the master branch of a Bitbucket repository |
| `list-deployments` | `bitbucket.listDeployments()` | `--repo-slug` `--workspace` | 4 | Lists deployments for a specified Bitbucket repository |
| `list-issues` ·common | `bitbucket.listIssues()` | `--repo-slug` `--workspace` | 6 | Lists issues in a Bitbucket repository with optional filtering by state, priority, kind, or assignee |
| `list-pipelines` | `bitbucket.listPipelines()` | `--repo-slug` `--workspace` | 2 | Find pipelines in a Bitbucket repository |
| `list-pull-request-tasks` | `bitbucket.listPullRequestTasks()` | `--pull-request-id` `--repo-slug` `--workspace` | 2 | Lists all tasks associated with a pull request in a Bitbucket repository |
| `list-pull-requests` ·common | `bitbucket.listPullRequests()` | `--repo-slug` `--workspace` | 3 | Lists pull requests in a specified, accessible Bitbucket repository, optionally filtering by state (OPEN, MERGED, DECLINED) |
| `list-repositories` ·common | `bitbucket.listRepositories()` | — | 6 | Retrieves a paginated list of all public repositories on Bitbucket |
| `list-repositories-environments` | `bitbucket.listRepositoriesEnvironments()` | `--repo-slug` `--workspace` | 4 | List all deployment environments configured for a Bitbucket repository |
| `list-repositories-in-workspace` ·common | `bitbucket.listRepositoriesInWorkspace()` | `--workspace` | 5 | Lists repositories in a specified Bitbucket workspace, accessible to the authenticated user, with options to filter by role or query string, and sort results |
| `list-repository-forks` ·common | `bitbucket.listRepositoryForks()` | `--repo-slug` `--workspace` | 2 | Retrieves a paginated list of all forks for a specific repository in a Bitbucket workspace |
| `list-repository-paths` ·common | `bitbucket.listRepositoryPaths()` | `--commit` `--repo-slug` `--workspace` | 6 | Lists file and directory entries under a repository path at a given revision, with optional breadth-first recursion via max_depth for repository traversal and scanning |
| `list-snippets` ·common | `bitbucket.listSnippets()` | — | 3 | Returns all snippets accessible to the authenticated user |
| `list-tags` ·common | `bitbucket.listTags()` | `--repo-slug` `--workspace` | 4 | Lists tags in a Bitbucket repository with optional server-side filtering by name pattern or commit hash (BBQL) and sorting |
| `list-versions` ·common | `bitbucket.listVersions()` | `--repo-slug` `--workspace` | 4 | Lists versions (milestones) in a Bitbucket repository's issue tracker |
| `list-workspace-members` ·common | `bitbucket.listWorkspaceMembers()` | `--workspace` | 2 | Lists all members of a specified Bitbucket workspace; the workspace must exist |
| `list-workspace-projects` ·common | `bitbucket.listWorkspaceProjects()` | `--workspace` | 4 | Lists projects in a specified Bitbucket workspace |
| `list-workspaces` ·common | `bitbucket.listWorkspaces()` | — | 4 | Lists Bitbucket workspaces accessible to the authenticated user, optionally filtered and sorted |
| `merge-pull-request` ·common | `bitbucket.mergePullRequest()` | `--pull-request-id` `--repo-slug` `--workspace` | 3 | Merge a Bitbucket Cloud pull request via the REST API |
| `request-pull-request-changes` | `bitbucket.requestPullRequestChanges()` | `--pull-request-id` `--repo-slug` `--workspace` | 0 | Request changes on a pull request as the authenticated user |
| `resolve-pull-request-comment` ·common | `bitbucket.resolvePullRequestComment()` | `--comment-id` `--pull-request-id` `--repo-slug` `--workspace` | 1 | Resolve or reopen a pull request comment thread |
| `search-team-code` | `bitbucket.searchTeamCode()` | `--search-query` `--username` | 2 | Search for code in repositories of a specified team |
| `search-user-repositories-code` | `bitbucket.searchUserRepositoriesCode()` | `--search-query` `--selected-user` | 3 | Search for code in the repositories of a specified user |
| `stop-pipeline` | `bitbucket.stopPipeline()` | `--pipeline-uuid` `--repo-slug` `--workspace` | 0 | Signal the stop of a pipeline and all of its steps that have not completed yet |
| `update-insights-projects-repos-commits-reports` | `bitbucket.updateInsightsProjectsReposCommitsReports()` | `--commit` `--details` `--repo-slug` `--reportId` `--report-type` `--title` `--workspace` | 6 | Create or update an insight report for a commit |
| `update-issue` | `bitbucket.updateIssue()` | `--issue-id` `--repo-slug` `--workspace` | 9 | Updates an existing issue in a Bitbucket repository by modifying specified attributes; requires `workspace`, `repo_slug`, `issue_id`, and at least one attribute to update |
| `update-pull-request` ·common | `bitbucket.updatePullRequest()` | `--pull-request-id` `--repo-slug` `--workspace` | 5 | Update an existing pull request's editable fields (e.g., title, description, reviewers) via the Bitbucket Cloud API |
| `update-repositories-commit-comments` ·common | `bitbucket.updateRepositoriesCommitComments()` | `--comment-id` `--commit` `--content-raw` `--repo-slug` `--workspace` | 0 | Updates the contents of a comment on a commit |
| `update-repositories-commit-reports-annotations` | `bitbucket.updateRepositoriesCommitReportsAnnotations()` | `--annotation-id` `--annotation-type` `--commit` `--repo-slug` `--report-id` `--severity` `--summary` `--workspace` | 6 | Creates or updates an individual annotation for a commit report |
| `update-teams-pipelines-config-variables` | `bitbucket.updateTeamsPipelinesConfigVariables()` | `--key` `--username` `--value` `--variable-uuid` | 1 | Updates a team-level pipeline configuration variable in Bitbucket |
| `update-users-pipelines-config-variables` | `bitbucket.updateUsersPipelinesConfigVariables()` | `--selected-user` `--variable-uuid` | 3 | Updates a user-level pipeline variable for Bitbucket pipelines |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
