{
  "schema": "ele.plugin.about/v1",
  "id": "ele.containers",
  "name": "Container Lab",
  "tagline": "List and extract files from disk and archive images.",
  "body_md": "# Container Lab\n\nContainer Lab opens supported disk images, archives, and compressed streams in\nFiles Preview. It lists files inside them and extracts files beside the source.\n\n## Supported formats\n\n- Amiga DD floppy images (`.adf`) — OFS and FFS\n- Gzip-wrapped Amiga DD floppy images (`.adz`) — OFS and FFS\n- Gzip **streams** (`.gz`) — decompress beside the source; inner tar is listed as an\n  archive instead of a single payload\n- Bzip2 **streams** (`.bz2`) — decompress beside the source\n- XZ **streams** (`.xz`) — decompress beside the source\n- Tape archives (`.tar`, `.tgz`, `.tar.gz`) — member listing, per-file extract, Extract all\n- Bzip2-wrapped tar (`.tar.bz2`, `.tbz`, `.tbz2`) — member listing, per-file extract, Extract all\n- XZ-wrapped tar (`.tar.xz`, `.txz`) — member listing, per-file extract, Extract all\n- 7z archives (`.7z`, common LZMA/LZMA2 archives) — member listing, per-file extract, Extract all\n- RAR archives (`.rar`, RAR4 and RAR5 with supported compression, including solid archives) — member listing, per-file extract, Extract all\n- ZIP archives (`.zip`) — member listing, per-file extract, Extract all; disable restores first-party ZIP listing\n- LHA archives (`.lha`, `.lzh`) — lh0/lh5/lh6 subset; unsupported methods refused visibly\n- PC floppy images (`.img`) — FAT12 1.44M listing, per-file extract, Extract all\n\n## Limits\n\nEncrypted archives need a password and are not supported. Container Lab reports\nan error for 7z methods that its reader does not include. See\n`fixtures/KNOWN_LIMITATIONS.md` for the method list.\n\nThis is not an Amiga emulator. Extracted siblings open in Tracker Lab, Hex, or other\noccupancy plugins as usual.\n\n**Extract all** enqueues a background plugin job that writes listed files into\n`{disk-stem}_files/` beside the image, keeping relative paths. Preview shows the\njob id and a link to **Plugin jobs**; you can leave the page while extraction\nruns. Names that cannot be stored as-is (trailing spaces, Windows device names\nsuch as `Con`) are sanitised. If a destination already exists, that file is\nskipped and the rest continue. Per-row **Extract** stays synchronous.\nWorkbench `.info` icon files are listed for context but are not included in\nextract-all.\n\n**Extract modules** writes module and SID files detected by inner magic (or\nPlaySID `.info` companions) beside the disk in one hop. The hop is capped at\n**64** files; when more tunes match, only the first 64 are extracted and the\nstatus line notes the cap.\n\nThe host inspects the container at job enqueue time and extracts every listed\nfile the inspect manifest reports. When the listing is truncated, extract-all\ncovers listed files only.",
  "icon_url": "https://a.tum.dk/ele/plugins/ele.containers/media/icon.svg",
  "capabilities_summary": "Requested capabilities:\n- project.files.read-selected",
  "changelog": [
    {
      "version": "0.1.12",
      "date": "2026-09-29",
      "notes_md": "Published release `0.1.12`."
    },
    {
      "version": "0.1.4",
      "date": "2026-09-19",
      "notes_md": "Published release `0.1.4`."
    },
    {
      "version": "0.1.2",
      "date": "2026-09-15",
      "notes_md": "Published release `0.1.2`."
    },
    {
      "version": "0.1.1",
      "date": "2026-09-15",
      "notes_md": "Published release `0.1.1`."
    },
    {
      "version": "0.1.0",
      "date": "2026-09-14",
      "notes_md": "Published release `0.1.0`."
    }
  ],
  "versions_url": "https://a.tum.dk/ele/plugins/ele.containers/history/index.json"
}
