# Mechanic tags

Mechanic extends Liquid with custom tags that go beyond what standard Liquid provides. These tags are how tasks produce output — defining actions, logging data, raising errors, and more.

## Available tags

* [action](https://learn.mechanic.dev/platform/liquid/tags/action) — defines an [action](https://learn.mechanic.dev/core/actions) to be performed after the task finishes rendering (e.g. a Shopify API call, an email, an HTTP request)
* [log](https://learn.mechanic.dev/platform/liquid/tags/log) — outputs structured data to the task run's log, useful for debugging and auditing
* [error](https://learn.mechanic.dev/platform/liquid/tags/error) — raises an error that halts the task run and marks it as failed
* [assign](https://learn.mechanic.dev/platform/liquid/tags/assign) — an enhanced version of Liquid's assign tag, with support for nested hash key assignment
* [permissions](https://learn.mechanic.dev/platform/liquid/tags/permissions) — explicitly declares Shopify access scopes the task requires, supplementing Mechanic's automatic permission detection
* [liquid](https://learn.mechanic.dev/platform/liquid/tags/liquid) — evaluates a string as a Liquid template at runtime, useful for dynamic template rendering
