{"owner":"quickemu-project","repo":"quickemu","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":1073,"categories":["root-instruction"],"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\nQuickemu is a Bash wrapper around QEMU that automates VM creation for ~1000 operating systems (Linux, macOS, Windows, BSDs). Two main tools: `quickget` downloads ISOs and creates configs; `quickemu` launches VMs with optimised hardware detection.\n\n## Project structure\n\n```\nquickemu        # Main VM launcher script (Bash)\nquickget        # OS downloader and config generator (Bash)\nquickreport     # System diagnostics tool (Bash)\nchunkcheck      # Download verification utility (Bash)\nflake.nix       # Nix flake for packaging\npackage.nix     # Nix package definition\ndevshell.nix    # Development environment\n```\n\n## Development environment\n\n```shell\nnix develop                    # Enter devshell with all dependencies\ndirenv reload                  # Update .direnv/bin/quickemu for testing\n```\n\nThe devshell patches `quickemu` to use Nix store paths for OVMF and Samba, writing to `.direnv/bin/quickemu`.\n\n## Build and test commands\n\n- Lint scripts: `shellcheck quickemu quickget quickreport chunkcheck`\n- Test quickget URLs: `./quickget --check <os> [release] [edition]`\n- Test ARM64 downloads: `./quickget --arch arm64 --check <os> [release] [edition]`\n- Test all architectures: `./quickget --check-all-arch <os> [release] [edition]`\n- List all supported OSes: `./quickget --list`\n- Run VM: `./quickemu --vm <name>.conf`\n\n## Code style\n\nAll scripts are Bash 4.0+ with ShellCheck compliance.\n\n| File | Indent | Notes |\n|------|--------|-------|\n| quickemu | 2 spaces | Main VM launcher |\n| quickget | 4 spaces | OS definitions and download logic |\n\n**General conventions:**\n\n- UTF-8, LF line endings, final newline\n- Trim trailing whitespace (except Markdown)\n- Functions use `function name() {` syntax\n- Many functions are invoked indirectly via dynamic dispatch - `SC2317` is disabled globally in quickget\n\n## Adding a new OS to quickget\n\nFollow the [guide in the wiki](https://github.com/quickemu-project/quickemu/wiki/06-Advanced-quickget-features#adding-a-new-os-to-quickget). Each OS requires:\n\n1. Entry in `os_info()` case statement\n2. `releases_<os>()` function returning available versions\n3. `editions_<os>()` function if multiple editions exist\n4. `arch_<os>()` function if ARM64 is supported (defaults to amd64 only if omitted)\n5. Download URL construction logic\n\n## Commit message format\n\nCommits must follow [Conventional Commits](https://www.conventionalcommits.org/). PR titles are validated against this format.\n\n**Common prefixes:**\n\n- `fix(quickget):` - Fix distro downloads, update editions/releases\n- `fix(quickemu):` - Fix VM configuration or runtime issues\n- `feat(quickget):` - Add new OS support\n- `feat(quickemu):` - Add new VM features\n- `ci:` - CI/workflow changes\n- `docs:` - Documentation updates\n\n**Examples from recent history:**\n\n```\nfix(quickget): update Zorin OS download method and editions\nfix(quickget): handle Solus Xfce beta naming for older releases\nfix(quickget): remove Athena OS (no longer getting updates)\n```\n\n## Pull request guidelines\n\n- PR titles must match Conventional Commits format (enforced by CI)\n- Single-commit PRs: commit message must match PR title\n- Run `shellcheck` before submitting\n- Test affected OS downloads with `./quickget --check <os> <release>`\n\n## CI workflows\n\n| Workflow | Trigger | Purpose |\n|----------|---------|---------|\n| lint-shellcheck | PR | ShellCheck with severity: warning |\n| lint-pr | PR | Validates PR title matches Conventional Commits |\n| test-quickget | PR | Tests quickget functionality |\n| test-build-quickemu | PR | Build verification |\n| flake-checker | PR | Nix flake validation |\n\n## Platform support\n\n- Host: Linux (x86_64, aarch64), macOS (x86_64, aarch64)\n- Guest: x86_64 (default), aarch64 (set `arch=\"aarch64\"` in VM config)\n- ARM64 guests use AAVMF firmware and `virt` machine type\n- Cross-arch emulation uses TCG (no KVM acceleration)\n- OVMF/UEFI firmware: Linux only\n- Bash 4.0+ required (explicit version check at runtime)\n\n## Key dependencies\n\nRuntime: qemu, cdrtools, curl, jq, spice-gtk, swtpm, samba, zsync\nLinux-specific: OVMF (x86_64 guests), AAVMF (aarch64 guests), usbutils, mesa-demos\n"},"files":{"AGENTS.md":"# AGENTS.md\n\nQuickemu is a Bash wrapper around QEMU that automates VM creation for ~1000 operating systems (Linux, macOS, Windows, BSDs). Two main tools: `quickget` downloads ISOs and creates configs; `quickemu` launches VMs with optimised hardware detection.\n\n## Project structure\n\n```\nquickemu        # Main VM launcher script (Bash)\nquickget        # OS downloader and config generator (Bash)\nquickreport     # System diagnostics tool (Bash)\nchunkcheck      # Download verification utility (Bash)\nflake.nix       # Nix flake for packaging\npackage.nix     # Nix package definition\ndevshell.nix    # Development environment\n```\n\n## Development environment\n\n```shell\nnix develop                    # Enter devshell with all dependencies\ndirenv reload                  # Update .direnv/bin/quickemu for testing\n```\n\nThe devshell patches `quickemu` to use Nix store paths for OVMF and Samba, writing to `.direnv/bin/quickemu`.\n\n## Build and test commands\n\n- Lint scripts: `shellcheck quickemu quickget quickreport chunkcheck`\n- Test quickget URLs: `./quickget --check <os> [release] [edition]`\n- Test ARM64 downloads: `./quickget --arch arm64 --check <os> [release] [edition]`\n- Test all architectures: `./quickget --check-all-arch <os> [release] [edition]`\n- List all supported OSes: `./quickget --list`\n- Run VM: `./quickemu --vm <name>.conf`\n\n## Code style\n\nAll scripts are Bash 4.0+ with ShellCheck compliance.\n\n| File | Indent | Notes |\n|------|--------|-------|\n| quickemu | 2 spaces | Main VM launcher |\n| quickget | 4 spaces | OS definitions and download logic |\n\n**General conventions:**\n\n- UTF-8, LF line endings, final newline\n- Trim trailing whitespace (except Markdown)\n- Functions use `function name() {` syntax\n- Many functions are invoked indirectly via dynamic dispatch - `SC2317` is disabled globally in quickget\n\n## Adding a new OS to quickget\n\nFollow the [guide in the wiki](https://github.com/quickemu-project/quickemu/wiki/06-Advanced-quickget-features#adding-a-new-os-to-quickget). Each OS requires:\n\n1. Entry in `os_info()` case statement\n2. `releases_<os>()` function returning available versions\n3. `editions_<os>()` function if multiple editions exist\n4. `arch_<os>()` function if ARM64 is supported (defaults to amd64 only if omitted)\n5. Download URL construction logic\n\n## Commit message format\n\nCommits must follow [Conventional Commits](https://www.conventionalcommits.org/). PR titles are validated against this format.\n\n**Common prefixes:**\n\n- `fix(quickget):` - Fix distro downloads, update editions/releases\n- `fix(quickemu):` - Fix VM configuration or runtime issues\n- `feat(quickget):` - Add new OS support\n- `feat(quickemu):` - Add new VM features\n- `ci:` - CI/workflow changes\n- `docs:` - Documentation updates\n\n**Examples from recent history:**\n\n```\nfix(quickget): update Zorin OS download method and editions\nfix(quickget): handle Solus Xfce beta naming for older releases\nfix(quickget): remove Athena OS (no longer getting updates)\n```\n\n## Pull request guidelines\n\n- PR titles must match Conventional Commits format (enforced by CI)\n- Single-commit PRs: commit message must match PR title\n- Run `shellcheck` before submitting\n- Test affected OS downloads with `./quickget --check <os> <release>`\n\n## CI workflows\n\n| Workflow | Trigger | Purpose |\n|----------|---------|---------|\n| lint-shellcheck | PR | ShellCheck with severity: warning |\n| lint-pr | PR | Validates PR title matches Conventional Commits |\n| test-quickget | PR | Tests quickget functionality |\n| test-build-quickemu | PR | Build verification |\n| flake-checker | PR | Nix flake validation |\n\n## Platform support\n\n- Host: Linux (x86_64, aarch64), macOS (x86_64, aarch64)\n- Guest: x86_64 (default), aarch64 (set `arch=\"aarch64\"` in VM config)\n- ARM64 guests use AAVMF firmware and `virt` machine type\n- Cross-arch emulation uses TCG (no KVM acceleration)\n- OVMF/UEFI firmware: Linux only\n- Bash 4.0+ required (explicit version check at runtime)\n\n## Key dependencies\n\nRuntime: qemu, cdrtools, curl, jq, spice-gtk, swtpm, samba, zsync\nLinux-specific: OVMF (x86_64 guests), AAVMF (aarch64 guests), usbutils, mesa-demos\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/quickemu-project/quickemu/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# AGENTS.md\n\nQuickemu is a Bash wrapper around QEMU that automates VM creation for ~1000 operating systems (Linux, macOS, Windows, BSDs). Two main tools: `quickget` downloads ISOs and creates configs; `quickemu` launches VMs with optimised hardware detection.\n\n## Project structure\n\n```\nquickemu        # Main VM launcher script (Bash)\nquickget        # OS downloader and config generator (Bash)\nquickreport     # System diagnostics tool (Bash)\nchunkcheck      # Download verification utility (Bash)\nflake.nix       # Nix flake for packaging\npackage.nix     # Nix package definition\ndevshell.nix    # Development environment\n```\n\n## Development environment\n\n```shell\nnix develop                    # Enter devshell with all dependencies\ndirenv reload                  # Update .direnv/bin/quickemu for testing\n```\n\nThe devshell patches `quickemu` to use Nix store paths for OVMF and Samba, writing to `.direnv/bin/quickemu`.\n\n## Build and test commands\n\n- Lint scripts: `shellcheck quickemu quickget quickreport chunkcheck`\n- Test quickget URLs: `./quickget --check <os> [release] [edition]`\n- Test ARM64 downloads: `./quickget --arch arm64 --check <os> [release] [edition]`\n- Test all architectures: `./quickget --check-all-arch <os> [release] [edition]`\n- List all supported OSes: `./quickget --list`\n- Run VM: `./quickemu --vm <name>.conf`\n\n## Code style\n\nAll scripts are Bash 4.0+ with ShellCheck compliance.\n\n| File | Indent | Notes |\n|------|--------|-------|\n| quickemu | 2 spaces | Main VM launcher |\n| quickget | 4 spaces | OS definitions and download logic |\n\n**General conventions:**\n\n- UTF-8, LF line endings, final newline\n- Trim trailing whitespace (except Markdown)\n- Functions use `function name() {` syntax\n- Many functions are invoked indirectly via dynamic dispatch - `SC2317` is disabled globally in quickget\n\n## Adding a new OS to quickget\n\nFollow the [guide in the wiki](https://github.com/quickemu-project/quickemu/wiki/06-Advanced-quickget-features#adding-a-new-os-to-quickget). Each OS requires:\n\n1. Entry in `os_info()` case statement\n2. `releases_<os>()` function returning available versions\n3. `editions_<os>()` function if multiple editions exist\n4. `arch_<os>()` function if ARM64 is supported (defaults to amd64 only if omitted)\n5. Download URL construction logic\n\n## Commit message format\n\nCommits must follow [Conventional Commits](https://www.conventionalcommits.org/). PR titles are validated against this format.\n\n**Common prefixes:**\n\n- `fix(quickget):` - Fix distro downloads, update editions/releases\n- `fix(quickemu):` - Fix VM configuration or runtime issues\n- `feat(quickget):` - Add new OS support\n- `feat(quickemu):` - Add new VM features\n- `ci:` - CI/workflow changes\n- `docs:` - Documentation updates\n\n**Examples from recent history:**\n\n```\nfix(quickget): update Zorin OS download method and editions\nfix(quickget): handle Solus Xfce beta naming for older releases\nfix(quickget): remove Athena OS (no longer getting updates)\n```\n\n## Pull request guidelines\n\n- PR titles must match Conventional Commits format (enforced by CI)\n- Single-commit PRs: commit message must match PR title\n- Run `shellcheck` before submitting\n- Test affected OS downloads with `./quickget --check <os> <release>`\n\n## CI workflows\n\n| Workflow | Trigger | Purpose |\n|----------|---------|---------|\n| lint-shellcheck | PR | ShellCheck with severity: warning |\n| lint-pr | PR | Validates PR title matches Conventional Commits |\n| test-quickget | PR | Tests quickget functionality |\n| test-build-quickemu | PR | Build verification |\n| flake-checker | PR | Nix flake validation |\n\n## Platform support\n\n- Host: Linux (x86_64, aarch64), macOS (x86_64, aarch64)\n- Guest: x86_64 (default), aarch64 (set `arch=\"aarch64\"` in VM config)\n- ARM64 guests use AAVMF firmware and `virt` machine type\n- Cross-arch emulation uses TCG (no KVM acceleration)\n- OVMF/UEFI firmware: Linux only\n- Bash 4.0+ required (explicit version check at runtime)\n\n## Key dependencies\n\nRuntime: qemu, cdrtools, curl, jq, spice-gtk, swtpm, samba, zsync\nLinux-specific: OVMF (x86_64 guests), AAVMF (aarch64 guests), usbutils, mesa-demos\n","isInternal":false,"tokens":1073,"sizeBytes":4121}],"systemPromptSnippet":"<yakaai_skills repo=\"quickemu-project/quickemu\">\n<!-- File: AGENTS.md (Tokens: ~1073 | Category: root-instruction) -->\n# AGENTS.md\n\nQuickemu is a Bash wrapper around QEMU that automates VM creation for ~1000 operating systems (Linux, macOS, Windows, BSDs). Two main tools: `quickget` downloads ISOs and creates configs; `quickemu` launches VMs with optimised hardware detection.\n\n## Project structure\n\n```\nquickemu        # Main VM launcher script (Bash)\nquickget        # OS downloader and config generator (Bash)\nquickreport     # System diagnostics tool (Bash)\nchunkcheck      # Download verification utility (Bash)\nflake.nix       # Nix flake for packaging\npackage.nix     # Nix package definition\ndevshell.nix    # Development environment\n```\n\n## Development environment\n\n```shell\nnix develop                    # Enter devshell with all dependencies\ndirenv reload                  # Update .direnv/bin/quickemu for testing\n```\n\nThe devshell patches `quickemu` to use Nix store paths for OVMF and Samba, writing to `.direnv/bin/quickemu`.\n\n## Build and test commands\n\n- Lint scripts: `shellcheck quickemu quickget quickreport chunkcheck`\n- Test quickget URLs: `./quickget --check <os> [release] [edition]`\n- Test ARM64 downloads: `./quickget --arch arm64 --check <os> [release] [edition]`\n- Test all architectures: `./quickget --check-all-arch <os> [release] [edition]`\n- List all supported OSes: `./quickget --list`\n- Run VM: `./quickemu --vm <name>.conf`\n\n## Code style\n\nAll scripts are Bash 4.0+ with ShellCheck compliance.\n\n| File | Indent | Notes |\n|------|--------|-------|\n| quickemu | 2 spaces | Main VM launcher |\n| quickget | 4 spaces | OS definitions and download logic |\n\n**General conventions:**\n\n- UTF-8, LF line endings, final newline\n- Trim trailing whitespace (except Markdown)\n- Functions use `function name() {` syntax\n- Many functions are invoked indirectly via dynamic dispatch - `SC2317` is disabled globally in quickget\n\n## Adding a new OS to quickget\n\nFollow the [guide in the wiki](https://github.com/quickemu-project/quickemu/wiki/06-Advanced-quickget-features#adding-a-new-os-to-quickget). Each OS requires:\n\n1. Entry in `os_info()` case statement\n2. `releases_<os>()` function returning available versions\n3. `editions_<os>()` function if multiple editions exist\n4. `arch_<os>()` function if ARM64 is supported (defaults to amd64 only if omitted)\n5. Download URL construction logic\n\n## Commit message format\n\nCommits must follow [Conventional Commits](https://www.conventionalcommits.org/). PR titles are validated against this format.\n\n**Common prefixes:**\n\n- `fix(quickget):` - Fix distro downloads, update editions/releases\n- `fix(quickemu):` - Fix VM configuration or runtime issues\n- `feat(quickget):` - Add new OS support\n- `feat(quickemu):` - Add new VM features\n- `ci:` - CI/workflow changes\n- `docs:` - Documentation updates\n\n**Examples from recent history:**\n\n```\nfix(quickget): update Zorin OS download method and editions\nfix(quickget): handle Solus Xfce beta naming for older releases\nfix(quickget): remove Athena OS (no longer getting updates)\n```\n\n## Pull request guidelines\n\n- PR titles must match Conventional Commits format (enforced by CI)\n- Single-commit PRs: commit message must match PR title\n- Run `shellcheck` before submitting\n- Test affected OS downloads with `./quickget --check <os> <release>`\n\n## CI workflows\n\n| Workflow | Trigger | Purpose |\n|----------|---------|---------|\n| lint-shellcheck | PR | ShellCheck with severity: warning |\n| lint-pr | PR | Validates PR title matches Conventional Commits |\n| test-quickget | PR | Tests quickget functionality |\n| test-build-quickemu | PR | Build verification |\n| flake-checker | PR | Nix flake validation |\n\n## Platform support\n\n- Host: Linux (x86_64, aarch64), macOS (x86_64, aarch64)\n- Guest: x86_64 (default), aarch64 (set `arch=\"aarch64\"` in VM config)\n- ARM64 guests use AAVMF firmware and `virt` machine type\n- Cross-arch emulation uses TCG (no KVM acceleration)\n- OVMF/UEFI firmware: Linux only\n- Bash 4.0+ required (explicit version check at runtime)\n\n## Key dependencies\n\nRuntime: qemu, cdrtools, curl, jq, spice-gtk, swtpm, samba, zsync\nLinux-specific: OVMF (x86_64 guests), AAVMF (aarch64 guests), usbutils, mesa-demos\n</yakaai_skills>"}