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

# pull_asset

> Download an asset to .versuno/ on disk as a markdown file with frontmatter.

Downloads an asset to your project's `.versuno/` folder as a markdown file with YAML frontmatter. The file is committable and can be edited, then pushed back to Versuno with [push\_asset](/mcp/tools/push-asset).

Unlike [get\_asset](/mcp/tools/get-asset), the content is not loaded into the agent's context. The agent only sees the file path.

## Input

| Parameter | Type   | Required | Description               |
| --------- | ------ | -------- | ------------------------- |
| `id`      | string | Yes      | The asset ID to download. |

## Example

**Prompt:**

> *"Pull the 'onboarding context' from Versuno."*

**Tool call chain:**

1. Agent calls `search_assets` with `"onboarding context"` to get the id.
2. Agent calls `pull_asset` with `{ "id": "abc123" }`.

**Response:**

```
Pulled "Team onboarding" (v3) to .versuno/contexts/team-onboarding.md
```

**Resulting file:**

```md theme={null}
---
id: abc123
type: context
title: Team onboarding
version: 3
tags: [onboarding, team]
importance: 4
maturity: stable
created_at: 2026-02-11T10:04:22.000Z
updated_at: 2026-04-12T08:14:03.000Z
versuno_url: https://versuno.ai/asset/abc123
---

# Team onboarding

Welcome to the team. Your first week...
```

## File organisation

The file is placed under `.versuno/<folder>/` based on its type:

| Asset type      | Folder                     |
| --------------- | -------------------------- |
| `context`       | `.versuno/contexts/`       |
| `prompt`        | `.versuno/prompts/`        |
| `persona`       | `.versuno/personas/`       |
| `system_prompt` | `.versuno/system-prompts/` |
| `skill`         | `.versuno/skills/`         |

The filename is a URL-safe slug of the asset's title.

## What happens if the file exists

`pull_asset` currently overwrites the local file without checking for unsaved changes. If you have local edits that haven't been pushed, use [push\_asset](/mcp/tools/push-asset) first, or commit the file to git so you can recover it.

## When to use it

* You want to edit an asset in your normal editor and version-control it in git.
* You want the agent to reference a full asset by path without bloating its context window.
* You're building up a local `.versuno/` folder for offline or CI use.

## See also

* [push\_asset](/mcp/tools/push-asset) — sync edits back to Versuno.
* [Frontmatter reference](/mcp/frontmatter) — the full list of fields written to each file.
* [CLI: versuno prompts pull](/cli/pull) — bulk version of this tool.
