---
title: Spell
order: 6
description: "A language/runtime adapter (e.g. go, md) that maps generic targets onto a toolchain's real commands."
tags: [glossary, core-model]
---

# Spell

A language/runtime adapter (e.g. `go`, `md`) that maps generic targets onto a
toolchain's real commands.

## Example

`magus describe spell` lists the spells this binary carries and the ops each maps.

```sh
magus describe spell
```

## Used in

<!-- BEGIN GLOSSARY USAGE (generated by glossary-usage-generate from the knowledge graph; edit the generator, not this list) -->

In the docs:

- [Spell caches: warming the tools' own caches](../concepts/cache/remote.md#spell-caches-warming-the-tools-own-caches)
- [How a charm reaches a spell](../concepts/charms.md#how-a-charm-reaches-a-spell)
- [The provider spell](../concepts/ci.md#the-provider-spell)
- [Spell-backed providers](../concepts/secrets/providers.md#spell-backed-providers)
- [D. A flag relayed through a provider spell that returns a runtime CLI command (considered)](../decisions/0003-running-an-invocation-on-another-operating-system.md#d-a-flag-relayed-through-a-provider-spell-that-returns-a-runtime-cli-command-considered)
- [A spell exports fun op(target: Target, req: Req) > Resp](../decisions/0011-typed-provider-calls.md#a-spell-exports-fun-optarget-target-req-req--resp)

In the code (`magus refs <name>` lists every site):

- `spells.Spell` (Go)
- `types.Spell` (Go)

<!-- END GLOSSARY USAGE -->

## See also

- [Spells](../concepts/spells.md)
- [Op](op.md)
