/ documentation

maleta init

Create a minimal maleta.json with maleta init, and learn about its defaults, output, and creation errors.

#Usage

Create at the default path
bash
maleta init
Create at another path
bash
maleta init --file ./configs/maleta.json

The default file is maleta.json, resolved relative to the current directory. Use --file <path> to specify another path. The --tool flag is not accepted by init.

#CLI help

Verbatim help
text
maleta - local Maleta selection CLI

Usage:
  maleta init [--file path]
  maleta validate [--file path]
  maleta install [--file path] [--tool all|claude|codex|agents] [--dry-run]
  maleta sync [--file path] [--tool all|claude|codex|agents] [--dry-run]
  maleta lock [--file path] [--dry-run]
  maleta tray
  maleta --version

Device commands (optional account):
  maleta login [--name label]      authorize this computer (code at app.maleta.dev/device)
  maleta logout                    revoke the credential and stop following the Maleta
  maleta attach <maleta>           follow one of your account's Maletas on this computer
  maleta detach                    stop following the bound Maleta
  maleta status                    show what this computer follows and what is pending
  maleta watch [--interval seconds] [--once]
                                   apply changes from the bound Maleta (never removes anything)
  maleta prune [--dry-run] [--yes]  remove only the files this Maleta wrote and no longer needs

maleta tray starts the maleta.dev tray icon in the background. It checks npm at startup and every 24 hours, then restarts after a verified update.
The file targetTool is used when --tool is omitted. targetOs must match the local host.
maleta lock pins every GitHub skill to the commit its ref (or default branch) points at today, so later installs get the same files.
GitHub skills are resolved from the declared public repository/path/ref without executing repository content.

#The created manifest

The command creates a document with schemaVersion: 1, a UUID in id, slug: "my-maleta", name: "My Maleta", matching ISO dates in createdAt and updatedAt, empty skills and plugins lists, targetTool: "all", and targetOs matching the host. The JSON uses two-space indentation and ends with a newline.

Minimal form (dynamic values omitted)
json
{
  "schemaVersion": 1,
  "id": "<UUID>",
  "slug": "my-maleta",
  "name": "My Maleta",
  "createdAt": "<agora em ISO>",
  "updatedAt": "<agora em ISO>",
  "skills": [],
  "plugins": [],
  "targetTool": "all",
  "targetOs": "<windows ou unix>"
}

#Output and codes

On success, the first line is created: <caminho>, followed by these seven summary lines and a next-step instruction:

Summary printed by init
text
valid: <caminho absoluto>
name: My Maleta
schema: 1
skills: 0
plugins: 0
targetTool: all
targetOs: <windows ou unix>
Next: add skills/plugins to <caminho absoluto> or export a Maleta from https://app.maleta.dev before running install.
  • If the file already exists, the command does not overwrite it: [error] refusing to overwrite existing file: <path>. The exit code is 3.
  • If the parent directory does not exist it prints [error] parent directory does not exist: <dir>; a permission failure prints [error] permission denied while creating <path>; any other failure prints [error] could not create <path>: <msg>. All three exit with code 1.
  • The write is atomic: the document goes to a private temporary file and is hard-linked into place, so a failed run leaves no partial or empty file behind and init can simply be retried.
  • Help, with no arguments or with --help / -h, exits with code 0.

#After creating it

Edit the selection in maleta.json and run maleta validate before applying it with maleta install.

Privacy preferences

Choose what this origin may measure. You can change it here at any time.

Essential storage

This browser always keeps your theme, the Maletas you save here and this choice so the site works. They stay on this origin.

Optional analytics

Maleta.dev measures aggregate traffic and real-user performance only after you allow it.

Current choice: not made yet, so measurement stays off.

Privacy policy