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

# Introduction

> A task runner with a clean syntax for defining tasks.

Errand is a task runner built around readability. You write `.ern` playbooks with tasks, variables, dependencies, and conditions using a structured syntax that stays clean whether you have three tasks or thirty.

## What you can do

<CardGroup cols={2}>
  <Card title="Define tasks" icon="list-check">
    Write named tasks with shell commands. Each task runs in its own working directory and can depend on other tasks.
  </Card>

  <Card title="Use variables" icon="sliders">
    Declare typed variables with defaults. Pass values from the command line. Use them anywhere in expressions or commands.
  </Card>

  <Card title="Compute values" icon="calculator">
    Derive values at runtime using expressions. Reference variables, call built-in functions, and use results across tasks.
  </Card>

  <Card title="Run concurrently" icon="bolt">
    Errand resolves dependencies automatically and runs independent tasks in parallel when concurrency is enabled.
  </Card>
</CardGroup>

## A quick look

```hcl theme={null}
variable "image" {
  description = "Docker image name"
  type        = string
  default     = "myapp"
}

variable "tag" {
  description = "Image tag"
  type        = string
}

computed "registry" {
  expression = env("REGISTRY", "registry.example.com")
}

task "test" {
  description = "Run the test suite"
  commands    = ["go test ./..."]
}

task "build" {
  description = "Build and push the Docker image"
  depends_on  = [task.test]
  commands = [
    "docker build -t ${computed.registry}/${var.image}:${var.tag} .",
    "docker push ${computed.registry}/${var.image}:${var.tag}",
  ]
}
```

Run it:

```bash theme={null}
errand run build --var tag=1.2.3
```

## Next steps

<CardGroup cols={2}>
  <Card title="Installation" icon="download" href="/installation">
    Install Errand on Linux, macOS, or Windows.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Write your first playbook and run your first task.
  </Card>

  <Card title="Playbook" icon="book" href="/language/index">
    Learn the four block types, references, and how a playbook runs.
  </Card>

  <Card title="Functions" icon="florin-sign" href="/functions/index">
    Browse all built-in functions with real-world examples.
  </Card>
</CardGroup>
