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.
Pushes a local markdown file from .versuno/ back to Versuno. If the file has an id in its frontmatter, a new version is created on the existing asset. If not, a new asset is created and its id is written back into the file.
| Parameter | Type | Required | Description |
|---|
file | string | Yes | Path to the local markdown file. Relative paths resolve from the working directory. Must be inside .versuno/. |
changelog | string | No | Version description. Stored with the new version. Only used when updating an existing asset. |
Create vs update
The behaviour depends on the file’s frontmatter:
Frontmatter has id | Action | Endpoint |
|---|
| Yes | Create a new version | POST /assets/{id}/versions |
| No | Create a new asset | POST /assets |
Asset type inference
When creating a new asset (no id), the type is inferred from the file’s parent directory:
| Directory | Inferred type |
|---|
contexts/ | context |
prompts/ | prompt |
personas/ | persona |
system-prompts/ | system_prompt |
skills/ | skill |
You can override this by setting type explicitly in the frontmatter.
Example: update an existing asset
Prompt:
“Push my edits to .versuno/skills/code-review.md with the message ‘Added review checklist’.”
Tool call:
{
"file": ".versuno/skills/code-review.md",
"changelog": "Added review checklist"
}
Response:
Pushed v13 of "Code review checklist" from .versuno/skills/code-review.md
The file’s frontmatter is updated with the new version and updated_at:
---
id: def456
type: skill
title: Code review checklist
- version: 12
+ version: 13
...
- updated_at: 2026-04-11T14:22:00.000Z
+ updated_at: 2026-04-19T10:33:12.000Z
Example: create a new asset
Drop a new markdown file into .versuno/prompts/:
---
title: Weekly standup template
tags: [meetings]
---
# Weekly standup template
Each team member answers:
1. What did you ship last week?
2. What are you shipping this week?
3. What's blocking you?
Then:
“Push .versuno/prompts/weekly-standup.md to Versuno.”
Response:
Created new prompt "Weekly standup template" (id: xyz987) from .versuno/prompts/weekly-standup.md
The file’s frontmatter is rewritten to include id, type, version: 1, created_at, and updated_at.
Constraints
- Path must be inside
.versuno/. Files outside this folder are refused. This is a security measure against prompt injection. See Security.
- Extension must be
.md. Other extensions are refused.
- Max file size: 1 MB. Larger files are refused.
Errors
| Error | Cause |
|---|
Refusing to push: file must live under the project's .versuno/ folder | Path is outside .versuno/. |
Refusing to push: only .md files are supported | Wrong extension. |
File too large | Over 1 MB. |
File has no content body | Only frontmatter, no actual content. |
Could not infer asset type | Creating a new asset without a known folder and without type in frontmatter. |
See also