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

# Getting Started

> Create and run your first Action Llama agent

## Prerequisites

* **Node.js 20+** — [nodejs.org](https://nodejs.org)
* **Docker** — [docker.com](https://www.docker.com) (Docker Desktop on macOS/Windows, or Docker Engine on Linux). Not required if all agents use the [host-user runtime](/reference/agent-config#runtime).

## 1. Create a project

```bash theme={null}
npm i -g @action-llama/action-llama@latest
```

```bash theme={null}
al new my-agents
```

```bash theme={null}
cd my-agents
```

The wizard prompts for your LLM API key (Anthropic recommended) and basic configuration. This creates:

* `config.toml`: project-level settings
* `.env.toml`: local environment binding (gitignored)
* `package.json`: with `@action-llama/action-llama` as a dependency
* `CLAUDE.md`: a symlink to an AGENTS.md file in the npm package that has everything your agent needs to know
* `.mcp.json`: MCP server config so [Claude Code](/integrations/claude) can interact with your agents

## 2. Create an agent

Add a "dev" agent that will implement Github issues when they are tagged with "ready-for-dev":

```bash theme={null}
npx al add Action-Llama/agents -a dev
```

You'll need to configure the credentials and webhooks since this is the first time you've run it.  You'll also want to configure the params to match your Github org.

You'll now see:

```
agents/dev/
  SKILL.md             # Portable metadata + instructions
  config.toml          # Runtime config (credentials, models, schedule, etc.)
```

<Info>You can also use your agent, such as Claude Code, to create new agents! The CLAUDE.md in the project root has everything it needs to know.</Info>

## 3. Run

```bash theme={null}
npx al start
```

If any credentials are missing, you'll be prompted for them. The scheduler starts, discovers your agents, and begins running them on their configured schedules.

The terminal shows a live TUI with agent status, or use `-w` to enable the [web dashboard](/reference/web-dashboard):

```bash theme={null}
npx al start -w
```

## What just happened?

1. The scheduler scanned for directories with `SKILL.md` and found your agent
2. It built a Docker image with your agent's tools
3. On the first cron tick, it launched a container, loaded credentials, and started an LLM session
4. The LLM received your `SKILL.md` instructions and ran autonomously
5. When it finished, the container was removed and logs were saved

## Key files

| File                        | Purpose                                                               |
| --------------------------- | --------------------------------------------------------------------- |
| `config.toml`               | Project settings: named models, Docker limits, webhook sources        |
| `agents/<name>/SKILL.md`    | Portable metadata + agent instructions                                |
| `agents/<name>/config.toml` | Agent runtime config: credentials, models, schedule, webhooks, params |

## Manual test run

Run a single agent once without starting the scheduler:

```bash theme={null}
npx al run dev
```

## What's next

* [Using Webhooks](/first-steps/using-webhooks) — trigger agents from GitHub events
* [Dynamic Context](/guides/dynamic-context) — use hooks to stage context
* [Agents (concepts)](/concepts/agents) — understand the runtime lifecycle
* [CLI Commands](/reference/cli-commands) — all available commands and flags
