Use the Starter Pack
Don’t start from a blank file. The valdr-tools starter pack gives you working tools you can run today and copy tomorrow: the same example action in five languages, read-only adapters for four popular CLIs, and a Maven build tool with its own guide, Maven Builds.
The source lives in the valdr-packs repository under valdr-packs/valdr-tools. Treat that source as the one copy you maintain; generated archives and installed tools are outputs. Workflows > Tools shows which revisions are installed on your host.
Language starters
Each language starter implements the same harmless summarize action, so you can compare them side by side and copy the one that matches your stack.
| Library entry | Tool ID | Runtime already installed on the workflow host |
|---|---|---|
| Node text summary | valdr-tools.user.node | Node |
| Typescript text summary | valdr-tools.user.typescript | Bun |
| Python text summary | valdr-tools.user.python | Python 3 |
| Shell text summary | valdr-tools.user.shell | POSIX sh and jq |
| Native text summary | valdr-tools.user.native | A compiled valdr-tools-native binary on the host’s PATH |
The native starter includes Go source. Build it yourself from the valdr-packs checkout:
mkdir -p build/bin
go build -trimpath -o build/bin/valdr-tools-native \
valdr-packs/valdr-tools/tools/native/main.goAdd that checkout’s absolute build/bin directory to PATH before starting Valdr. Import never compiles anything, and the pinned Go source doesn’t vouch for the binary you install.
CLI starters
Put your existing CLIs to work in a workflow. Each adapter runs a fixed set of read actions against the CLI on the workflow host, using the configuration and sign-in you already have.
| Library entry | Tool ID | Read actions |
|---|---|---|
| GitHub CLI | valdr-tools.user.gh | repo-view, repo-list, pr-list, pr-view, issue-list, issue-view, run-list, run-view, workflow-list, release-list, release-view, label-list |
| AWS CLI | valdr-tools.user.aws | sts-get-caller-identity, s3-list-buckets, ec2-describe-instances, ec2-describe-volumes, ec2-describe-vpcs, iam-list-users, lambda-list-functions, rds-describe-db-instances, dynamodb-list-tables, ecr-describe-repositories |
| Google Cloud CLI | valdr-tools.user.gcloud | projects-list, projects-describe, compute-instances-list, compute-instances-describe, compute-disks-list, compute-networks-list, storage-buckets-list, run-services-list, run-services-describe |
| Atlassian CLI | valdr-tools.user.acli | jira-workitem-view, jira-workitem-import, jira-workitem-search, jira-workitem-keys, jira-project-list, jira-project-view, jira-workitem-comment-list, jira-workitem-attachment-list, jira-workitem-link-list, jira-workitem-list-watchers, jira-board-search, jira-board-view |
Every CLI adapter also has a version action. It takes {} and returns {"version":"..."}, a quick local check that the CLI is installed. It doesn’t check sign-in or account access.
What to expect from the adapters:
- Typed inputs, no pass-through. Each action accepts validated fields, never arbitrary arguments.
- The CLI’s own JSON as output. Most actions return the CLI’s JSON unchanged, so run one against a real account and look at the result before you map fields.
- Jira fields that line up with Valdr tasks.
jira-workitem-importreads one work item by key and returns fixed fields:key,title,type,jiraType,priority,jiraPriority,labels,status, anddescriptionMarkdown.typeandpriorityuse the same values as Valdr tasks:typeisbug,story,epic, orspikewhen the Jira type matches, andtaskotherwise, andpriorityturns Jira’s Highest through Lowest into 1 through 5, ornullfor any other priority. The original Jira values stay injiraTypeandjiraPriority. Every field is declared in the output schema, so later steps can map them with confidence. - Every matching key.
jira-workitem-keysreturnskeys, the key of every work item that matches a JQL query, whilejira-workitem-searchstops at 100 items. A very large result can run past the adapter’s time or size limit, so narrow the JQL if the step fails. - Useful failures. When the CLI exits with an error, the failure includes its exit code or signal and a shortened diagnostic message. Redaction is best effort; review CLI output before sharing it. Atlassian failures may also include sign-in diagnostics to help you correct account access.
- No credential changes. The adapters never sign in or change credentials.
Each adapter has its own folder (tools/gh, tools/aws, tools/gcloud, tools/acli) with its own manifest and runner. Copy and customize a starter to add the actions your workflows need.
Build and import the pack
With Bun and the latest Valdr CLI installed, run this from your valdr-packs checkout:
make build-valdr-toolsThis validates the pack and writes build/valdr-tools.valdr-pack.tar.gz. Import the archive from Settings > Valdr Packs.
Install the runtimes and CLIs needed by the tools you plan to run, as listed above.
Before you rely on a CLI action, run it in a test workflow against a repository, account, project, or Jira item you know. Check the returned JSON, and see how missing sign-in, missing permissions, and bad identifiers are reported.
Next step
Run your first installed tool, then Build Your First Tool to learn how the files fit together.