> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spreadjam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Get up and running with jam-nodes in minutes.

## Installation

<CodeGroup>
  ```bash npm theme={null}
  npm install @jam-nodes/core @jam-nodes/nodes zod
  ```

  ```bash yarn theme={null}
  yarn add @jam-nodes/core @jam-nodes/nodes zod
  ```

  ```bash pnpm theme={null}
  pnpm add @jam-nodes/core @jam-nodes/nodes zod
  ```
</CodeGroup>

## Basic Usage

**1. Create a Registry**

```typescript theme={null}
import { NodeRegistry } from '@jam-nodes/core';
import { builtInNodes } from '@jam-nodes/nodes';

const registry = new NodeRegistry();
registry.registerAll(builtInNodes);
```

**2. Create an Execution Context**

```typescript theme={null}
import { ExecutionContext } from '@jam-nodes/core';

const ctx = new ExecutionContext({ userName: 'World' });
```

**3. Run a Node**

```typescript theme={null}
const executor = registry.getExecutor('http_request');
const result = await executor(
  { url: 'https://api.example.com/data', method: 'GET' },
  ctx.toNodeContext('user-123', 'wf-456')
);

console.log(result.success, result.output);
```

**4. Use Variable Interpolation**

```typescript theme={null}
ctx.setVariable('apiUrl', 'https://api.example.com');

const input = ctx.interpolateObject({
  url: '{{apiUrl}}/users',
  method: 'GET',
});
// { url: 'https://api.example.com/users', method: 'GET' }
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Core API Reference" href="/core/types">
    Understand the type system and registry.
  </Card>

  <Card title="Built-in Nodes" href="/nodes/overview">
    Explore all 16 built-in nodes.
  </Card>

  <Card title="Create Custom Nodes" href="/creating-nodes">
    Build and register your own nodes.
  </Card>

  <Card title="Playground" href="/playground/overview">
    Test nodes interactively with the CLI or web playground.
  </Card>
</CardGroup>
