{"id":46308142,"url":"https://github.com/skevetter/picolayer","last_synced_at":"2026-06-03T01:01:05.963Z","repository":{"id":321996857,"uuid":"1079609384","full_name":"skevetter/picolayer","owner":"skevetter","description":"Install packages with minimal container layer sizes","archived":false,"fork":false,"pushed_at":"2026-06-01T19:23:47.000Z","size":564,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T21:18:11.669Z","etag":null,"topics":["container","devcontainer","devcontainer-feature","docker"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skevetter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-20T05:23:33.000Z","updated_at":"2026-06-01T19:23:51.000Z","dependencies_parsed_at":"2026-05-25T12:03:16.116Z","dependency_job_id":null,"html_url":"https://github.com/skevetter/picolayer","commit_stats":null,"previous_names":["skevetter/picolayer"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/skevetter/picolayer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skevetter%2Fpicolayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skevetter%2Fpicolayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skevetter%2Fpicolayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skevetter%2Fpicolayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skevetter","download_url":"https://codeload.github.com/skevetter/picolayer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skevetter%2Fpicolayer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33843611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["container","devcontainer","devcontainer-feature","docker"],"created_at":"2026-03-04T12:31:47.927Z","updated_at":"2026-06-03T01:01:05.897Z","avatar_url":"https://github.com/skevetter.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Picolayer\n\nA utility tool that keeps container layers small by cleaning installation leftovers such as apt lists, caches, and temporary files. Picolayer can install packages using package managers, install executables from GitHub releases, run [devcontainer-features](https://containers.dev/implementors/features/), and run programming languages with [pkgx](https://docs.pkgx.sh/pkgx/pkgx).\n\nThis project is inspired by [nanolayer](https://github.com/devcontainers-extra/nanolayer).\n\n## Devcontainer Feature Integration\n\nRefer to these examples to integrate the [Picolayer feature](https://github.com/skevetter/features/pkgs/container/features%2Fpicolayer) with existing devcontainer feature builds:\n\n| Feature                                                                           | Description                                                |\n|-----------------------------------------------------------------------------------|------------------------------------------------------------|\n| [pkgx](https://github.com/skevetter/features/blob/main/src/pkgx/install.sh)       | Installs from GitHub repository with checksum verification |\n| [Lazygit](https://github.com/skevetter/features/blob/main/src/lazygit/install.sh) | Installs from a GitHub repository                          |\n| [Neovim](https://github.com/skevetter/features/blob/main/src/neovim/install.sh)   | Installs from a GitHub repository with asset tag filtering |\n| [Biome](https://github.com/skevetter/features/blob/main/src/biome/install.sh)     | Installs a NPM package                                     |\n| [UV](https://github.com/skevetter/features/blob/main/src/uv/install.sh)           | Installs multiple binaries from a GitHub repository        |\n\n## Commands\n\n| Command      | Description                                                                |\n|--------------|----------------------------------------------------------------------------|\n| `apt-get`    | Install Debian/Ubuntu packages                                             |\n| `apk`        | Install Alpine packages                                                    |\n| `brew`       | Install packages using Homebrew                                            |\n| `npm`        | Install npm packages (installs Node.js if needed)                          |\n| `pipx`       | Install Python packages in isolated environments (installs pipx if needed) |\n| `gh-release` | Install binaries from GitHub releases                                      |\n| `pkgx`       | Execute commands with pkgx                                                 |\n\n## Installation\n\n### From source\n\n```bash\ncargo install --git https://github.com/skevetter/picolayer\n```\n\n### From binary\n\nDownload the latest release from the [releases page](https://github.com/skevetter/picolayer/releases).\n\n_Or download as a one-liner_\n\n```bash\ncurl -L https://github.com/skevetter/picolayer/releases/latest/download/picolayer-x86_64-unknown-linux-gnu.tar.gz | tar -xz \u0026\u0026 chmod +x picolayer \u0026\u0026 \\\n./picolayer \\\n    devcontainer-feature \\\n    \"ghcr.io/devcontainers-extra/features/bash-command:1\" \\\n    --option command=\"curl https://pkgx.sh | sh\"\n```\n\n## Usage\n\n| Package Manager                                                | Command                                                             |\n|----------------------------------------------------------------|---------------------------------------------------------------------|\n| [Apt-get](https://wiki.debian.org/apt-get)                     | `picolayer apt-get cowsay`                                          |\n| [Apt](https://wiki.debian.org/Apt)                             | `picolayer apt cowsay`                                              |\n| [Aptitude](https://wiki.debian.org/Aptitude)                   | `picolayer aptitude cowsay`                                         |\n| [Apk](https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper) | `picolayer apk cowsay`                                              |\n| [Homebrew](https://brew.sh/)                                   | `picolayer brew cowsay`                                             |\n| [Npm](https://nodejs.org/)                                     | `picolayer npm cowsay`                                              |\n| [Pipx](https://pipx.pypa.io/)                                  | `picolayer pipx cowsay`                                             |\n| GitHub releases                                                | `picolayer gh-release --owner pkgxdev --repo pkgx --version latest` |\n| [Pkgx](https://docs.pkgx.sh/)                                  | `picolayer pkgx --tool python -- -c \"print('Hello World')\"`         |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskevetter%2Fpicolayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskevetter%2Fpicolayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskevetter%2Fpicolayer/lists"}