icepick.start method starts the Icepick worker to process agents, tools, and toolboxes. It automatically discovers and registers your workflows or accepts explicit registration.
Quick Reference
- Auto-discovery: Automatically finds agents, tools, and toolboxes created with
icepick.agent(),icepick.tool(), andicepick.toolbox() - Explicit registration: Register specific workflows using the
registerparameter - Worker configuration: Configure worker slots, labels, and other runtime options
Usage Example
Parameters
Thestart() method accepts a single optional options parameter with the following properties:
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No | Worker name for identification. Default: “icepick-worker” |
register | BaseOrRegisterable[] | No | Workflows to register. If omitted, uses auto-discovery |
slots | number | No | Maximum number of concurrent workflow runs. Default: 100 |
durableSlots | number | No | Maximum number of concurrent durable workflow runs. Default: 1,000 |
labels | WorkerLabels | No | Key-value pairs for worker affinity and routing |
handleKill | boolean | No | Whether to handle process kill signals gracefully |
workflows | BaseWorkflowDeclaration[] | No | Direct workflow array (typically handled via register) |
BaseOrRegisterable Type
Theregister parameter accepts workflows and registerable objects:
| Type | Description |
|---|---|
BaseWorkflowDeclaration | Individual workflow (agent, tool, or Hatchet workflow) |
Registerable | Object with a register property that returns workflow arrays |
- Agents created with
icepick.agent() - Tools created with
icepick.tool() - Toolboxes created with
icepick.toolbox() - Hatchet workflows created with the Hatchet SDK
WorkerLabels Type
Worker labels for affinity-based assignment and routing:| Property | Type | Description |
|---|---|---|
[key] | string | number | Label key-value pairs for worker classification |
Returns
Type:Promise<undefined | void[]>
Returns a promise that resolves when the worker starts successfully. The exact return value depends on the underlying Hatchet worker implementation.
Auto-Discovery
Whenregister is omitted, Icepick automatically discovers workflows from an internal registry that gets populated when you create:
- Agents: Added when calling
icepick.agent() - Tools: Added when calling
icepick.tool() - Toolboxes: Added when calling
icepick.toolbox()
Worker Configuration
Concurrency Control
| Parameter | Default | Purpose |
|---|---|---|
slots | 100 | Regular workflow concurrency limit |
durableSlots | 1,000 | Durable workflow concurrency limit |
Worker Identification
name: Identifies the worker in Hatchet dashboard and logslabels: Used for workflow routing and worker affinity
Examples
Basic Auto-Discovery
Explicit Registration
Related
icepick.agent- Create agents that get auto-discoveredicepick.tool- Create tools that get auto-discoveredicepick.toolbox- Create toolboxes that get auto-discovered- Hatchet Documentation - Learn more about the underlying workflow engine and worker configuration

