Skills
A skill runs several Tomba lookups as one command and passes results from one step to the next, for example finding an address and then verifying it. The CLI includes eight skills, and you can add your own as YAML files.
The CLI's output calls this feature ClawHub. CLI skills are local files that the CLI runs itself; they're separate from the Tomba skill published on ClawHub for AI agents.
Built-in skills
| Skill | Steps | Inputs |
|---|---|---|
find-email | finder, verify | domain, first_name, last_name |
company-emails | count, search | domain |
enrich-verify | enrich, verify, sources | email |
company-intel | status, count, search, technology, similar | domain |
lead-gen | search, filtered by department | domain, department (default executive) |
linkedin-intel | linkedin, enrich, verify | url |
domain-check | status, count | domain |
author-verify | author, verify | url |
Each step is a Tomba API request, billed as described in Credit costs. The steps use the same endpoints as the commands of the same name.
List and inspect skills
Code
tomba skill list, or tomba skill alone, lists the built-in and custom skills. tomba skill info shows a skill's inputs, each step with its parameters, and an example command.
Run a skill
Code
--target sets the skill's first input; pass the others as name=value arguments. The CLI prompts for any required input you leave out.
Code
Steps run in order. When a step fails, the CLI reports it and moves on to the next step; a step that needs an email address from an earlier step fails if that step found none. After the last step, the CLI prints each step's result.
Add your own skills
| Command | What it does |
|---|---|
tomba skill create | Asks for a name, description, inputs, steps, and output settings, then saves the skill. |
tomba skill import <file.yaml> | Checks that the file has a name and at least one step, then saves it, replacing a custom skill of the same name. |
tomba skill export <skill> | Prints a skill, built-in or custom, as YAML. |
tomba skill remove <skill> | Deletes a custom skill. Built-in skills can't be removed. |
Custom skills are saved in ~/.tomba/skills/ as <name>.yaml, and the CLI also loads any .yaml or .yml file you copy there. A custom skill with the same name as a built-in skill is never run.
To start from a built-in skill, export it, edit the file, and import it under a new name:
Code
Skill file format
This skill searches a domain and verifies the first address found:
Code
| Field | Description |
|---|---|
name | Skill name, used on the command line and as the file name. Required. |
description | Shown by list and info. |
inputs | Each input's name, description, type (string, email, domain, url, or linkedin), required, and default. |
steps | Each step's id, name, action, and params. At least one step is required. |
output.title | Heading printed above the results. |
author, version, tags, and output.fields appear only in tomba skill info. output.format, save_as, condition, and variables are accepted but have no effect.
Actions
action | params |
|---|---|
search | domain, limit, page, department |
finder | domain, and first_name and last_name or full_name |
enrich | email |
verify | email |
count | domain |
status | domain |
sources | email |
similar | domain |
technology | domain |
linkedin | url |
author | url |
phone-finder | email or domain |
phone-validator | phone, country_code |
tomba skill create also offers reveal, but a step with that action fails with unknown action.
Templates
Parameter values can include templates:
{{input.<name>}}is replaced with an input's value.{{steps.<id>.<field>}}is replaced with a field from an earlier step's response. Use dots for nested fields and0for the first item of a list, as in{{steps.search.data.emails.0.email}}.
If a template doesn't resolve, an enrich, verify, or sources step fails with no email available from previous step; other steps send the template text as written.