/ documentation

maleta.json

Learn about the maleta.json manifest, schema version 1, required fields, validation, and export.

#The Maleta manifest

The maleta.json file is the manifest that records a selection of skills and plugins, along with the target tool and operating system. You can export it from the workspace and import it to continue working.

#Valid example

Complete manifest
json
{
  "schemaVersion": 1,
  "id": "shared-fixture",
  "slug": "shared-fixture",
  "name": "Shared fixture",
  "description": "Builtin and GitHub selection used by site and CLI contract tests.",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedAt": "2026-01-01T00:00:00.000Z",
  "skills": [
    {
      "id": "builtin:design-taste-frontend",
      "name": "design-taste-frontend",
      "source": { "type": "builtin", "name": "design-taste-frontend" }
    },
    {
      "id": "github:acme%2Fskills:skills%2Freviewer%2FSKILL.md@v1.2.0",
      "name": "reviewer",
      "source": { "type": "github", "repo": "acme/skills", "path": "skills/reviewer/SKILL.md", "ref": "v1.2.0" },
      "description": "Review code before shipping."
    }
  ],
  "plugins": ["frontend-design@claude-plugins-official"],
  "targetTool": "claude",
  "targetOs": "unix"
}

#Root fields

schemaVersion
1required

Accepted schema version.

id
stringrequired

Maleta identifier, up to 128 characters.

slug
stringrequired

Slug up to 96 characters, made of letters, numbers, and hyphens between segments.

name
stringrequired

Maleta name, up to 80 characters.

description
stringoptionaldefault: absent

Optional description, up to 600 characters.

createdAt
stringrequired

Date accepted by Date.parse.

updatedAt
stringrequired

Date accepted by Date.parse.

skills
arrayrequired

List of skills; it may contain objects or builtin strings.

plugins
string[]required

List of plugin identifiers.

targetTool
all | claude | codex | agentsrequired

Target tool.

targetOs
windows | unixrequired

Target operating system.

#Schema and validation

The only accepted version is schemaVersion: 1. There is no migration between versions. A root selection key is rejected; selection fields belong at the top level. Unknown keys are silently discarded.

Use maleta validate to read the file, apply the schema, and show a summary without accessing the network. The parser also enforces a 1 MiB limit on string input.

#Import and export

The workspace exports the manifest for local use or sharing. When serialized, the structure uses 2-space indentation and ends with a newline; when imported, the content is parsed and normalized by the schema.