Xget: a Cloudflare Worker that fronts developer infrastructure
Ultra-high-performance, secure, all-in-one acceleration engine for developer resources
At a glance
- What is it?
- Eight thousand stars, two open issues, no releases at all. The repository topics say agent-skills while the README describes a caching proxy, and both statements are in the same repo.
- Who is it for?
- Xget is a well-executed piece of infrastructure that sits in an unglamorous spot, which is exactly why its metadata is confusing. The project itself is clear enough once you read past the badge wall: a Worker that fronts the services developers already depend on, handling caching, retries, security headers and the per-protocol quirks of each upstream, and deployable to six different platforms from the same source.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Star history
- xixu-me/xget8,196 ★ · +3
| Repository | 2026-10-08 | 2026-10-22 |
|---|---|---|
| xixu-me/xget | 8.2k | 8.2k |
3 Stars in the last 14 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What the project claims to be
The README's opening paragraph is a one-line description followed by a longer expansion. It calls Xget an ultra-high-performance, secure, all-in-one acceleration engine for developer resources, and then explains what that means: unified acceleration for code hosting, model and dataset hubs, package registries, container registries and AI inference providers, with caching, retries, security headers and protocol-specific compatibility behavior handled on your behalf.
That list is broad enough that it is worth noticing what it leaves out. There is no claim of end-to-end encryption, no mention of anonymity, and no promise that traffic is routed anywhere particular. The framing is about throughput and about the operational burden of talking to many upstreams that each behave slightly differently.
The README also points at a long technical write-up on the author's own blog, with a title that spells out the same three-word formula, high-performance, multi-protocol, and secure. There is recognition to note as well. The project was invited onto GitCode and described as a G-Star graduation project, it is listed as receiving support from OpenAI's Codex for Open Source program, and the README credits several named tech creators and video channels for recommending it. A Trendshift badge, a Zread badge, a DeepWiki badge and a codecov badge sit above all of that.
The README is available in English, Simplified Chinese and Traditional Chinese, which is a real commitment for an infrastructure project, since a caching proxy that sits in front of a registry needs to be readable by the people who maintain that registry.
The badge wall and what it is actually pointing at
The README opens with roughly thirty badges before a single sentence of prose, and the density is unusual. They split into four groups and each group means something different.
The first group is discoverability and analysis tooling: Trendshift, Zread, DeepWiki and codecov. The codecov badge points at a coverage graph, which tells you the project measures coverage and displays it, and the presence of a codecov configuration file in the tree backs that up.
The second group is browser and runtime targets: Chromium, Firefox, Cloudflare, EdgeOne, Vercel, Netlify, Deno, Docker and Podman. These are not integrations in the sense of plugins. Each is a deployment target or a place the Worker can run, and the README says so explicitly with a note telling readers that the badges point to the relevant usage or deployment sections rather than to anything else.
The third group is the supported platform list, and it is the longest. GitHub, GitLab, Gitea, Codeberg, SourceForge, AOSP, Hugging Face, Civitai, npm, PyPI, conda, Maven, Apache, Gradle, Homebrew and RubyGems. Each badge anchors to a section named after the platform, so this list is an index of the per-protocol adapters rather than a set of partnerships.
The fourth group is the source-code infrastructure: commitlint configuration, Prettier, ESLint flat config, a TypeScript configuration, and two separate Vitest configurations, one of them a coverage variant. Wrangler configuration and a Cap'n Proto config file sit alongside them, and both of those matter for the build.
So the npm badge in the platform group and the Cloudflare badge in the runtime group look identical and mean completely different things. One says Xget can accelerate the npm registry, the other says Xget can be deployed to Cloudflare Workers.
The container build explains the architecture
There is no install command anywhere in the README because there is nothing to install. The package manifest declares itself private, so no package named xget is published to any registry. You deploy the Worker rather than consume it as a library.
The Dockerfile is where the deployment model becomes concrete, and it is worth reading because it explains why the project targets workerd rather than Node directly.
FROM node:26-alpine AS builder
WORKDIR /app
# Install dependencies & wrangler
COPY package*.json wrangler.toml ./
RUN npm ci
# Copy source and build
COPY src ./src
RUN npx wrangler deploy --dry-run --outdir=distThe first stage builds the Worker bundle without deploying it. It installs only the manifest files and the Wrangler configuration, installs dependencies, copies the source directory, and then runs a dry-run deploy that writes compiled output to a dist directory. No other source directory is copied, which tells you the compiled Worker needs nothing outside src at runtime.
The second stage is where the design choice shows.
FROM node:26-slim AS runtime
ARG TARGETARCH
# Install ca-certificates for SSL, then install workerd via npm
RUN apt-get update && \n apt-get install -y ca-certificates && \n rm -rf /var/lib/apt/lists/* && \nRather than shipping the build toolchain, the runtime stage installs the Cloudflare workerd binary itself and symlinks it into the standard location, then checks the version. workerd is the JavaScript engine that runs Cloudflare Workers in production, so running it locally means the self-hosted container executes the same engine as the hosted deployment rather than an approximation of it.
The architecture handling is explicit and limited to two cases, amd64 and arm64, with anything else producing a clear error instead of a broken image. The final command starts workerd with the Cap'n Proto config file, and the container exposes port 8080. The config file is copied from the build context rather than generated, which means the runtime configuration is version-controlled along with everything else.
A toolchain pinned to bleeding-edge versions
The dev dependency list is unusual in a way that tells you something about the project's age and its priorities. TypeScript is pinned at ^7.0.2, which is the native-port major rather than the long-running JavaScript implementation series. The Node type definitions are at ^26.1.2 and the container images are built FROM node:26, so the project is aligned to a Node major that also uses the 26.x versioning. ESLint is at ^10.8.0 and the configuration file is the flat config format introduced in ESLint 9.
The test stack is more elaborate than a small project usually needs. There is a Cloudflare-specific Vitest pool, meaning tests execute inside a Workers environment rather than in plain Node, which is the only way to get real coverage of Worker code. Coverage runs through Istanbul with the coverage-istanbul Vitest package, and the manifest lists the Istanbul library and report packages directly, which is unusual because those are normally transitive dependencies. Coverage output is written through istanbul-lib-report with the standard reporters.
The overrides block is the part that deserves attention from anyone auditing dependencies. It pins esbuild to an exact version, 0.28.1, with no caret or tilde, which means that override exists to hold a specific version rather than to request a compatible range. That pattern usually means a security fix or a breaking change in a transitive dependency that the project needed to control precisely. The same block overrides fast-uri, sharp, js-yaml and undici with caret ranges. The js-yaml override is worth noting because that package has had prototype-pollution advisories in the past.
Commit hygiene is enforced rather than assumed. A commitlint configuration is present, the scripts section wires commit-msg to run commitlint on the message, and simple-git-hooks installs itself through the prepare script so the hook is set up automatically on install. Formatting is Prettier over source, tests and root-level JavaScript and JSON files, with a separate check script that runs the same selection in check mode.
The metadata contradicts the project description
This is the part that will cost you the most time if you go in without warning.
The repository topics are agent-skills and xget. Two topics, and one of them describes a curated collection of agent prompt and instruction libraries rather than anything about caching or acceleration. The README carries no section about agent skills, and the tree has no skills directory. Whatever prompted that topic, it does not describe the software in the README, and if you arrived at this repository through a topic search you may have found something other than what you expected.
The licensing differs between two sources in a way that matters legally. The repository metadata reports AGPL-3.0. The package manifest declares AGPL-3.0-or-later. Those are different grants: AGPL-3.0 alone permits relicensing only under those exact terms, while AGPL-3.0-or-later lets you offer the work under a later version of the license if one appears. The README does not mention licensing anywhere. If you are considering embedding this in a product, the copyleft obligations of the AGPL reach network use, which is exactly the situation the license was written for, so the question is not academic.
The release history is empty. There are no tagged releases at all, no version history, nothing to pin to. For a project at this adoption level that is unusual, and it means consumers are tracking a moving default branch or deploying a commit hash. There is no changelog file in the tree either, so the commit history is the only record of what changed.
Set against that, the issue tracker has two open items against 8194 stars and 1277 forks. That ratio is remarkable in either direction. It can mean the project is stable enough that nobody reports problems, or it can mean the tracker is not where support happens. The README's credit list suggests heavy community attention, and community channels absorb a lot of what would otherwise become issues.
Signals about where it is headed
The default branch is main and the most recent push is dated 2026-10-04, which is recent, so this is actively worked rather than abandoned. The license file and the governance file both sit at the root, alongside a code of conduct, a contributing guide and a security policy. Having all four in a project of this size is a signal about how the maintainer intends to handle incoming changes and reports.
Two other files at the root are worth naming. There is an AGENTS.md and a CLAUDE.md, which are instructions aimed at coding agents working in the repository rather than documentation for humans. Their presence, alongside a context7 configuration file, suggests the project is set up to be worked on by automated tooling and to be served into documentation systems that consume structured context. That is consistent with a project that has been adopted into agent-oriented workflows, which may also explain the agent-skills topic even if it does not match the README.
The documentation lives in a docs directory and there is a scripts directory, and the test directory sits beside both alongside src and adapters. That adapters directory name lines up with the per-platform badge list, which is consistent with the idea that each upstream service gets its own adapter rather than being special-cased inside the request handler.
What the project lacks is a versioned contract. No releases, no changelog, and the only statement about what the software does is a blog post linked from the README. If you adopt this, pin to a commit and keep your own record, because there is nothing on the platform telling you what changed between two points in time.
Editorial conclusion
Xget is a well-executed piece of infrastructure that sits in an unglamorous spot, which is exactly why its metadata is confusing. The project itself is clear enough once you read past the badge wall: a Worker that fronts the services developers already depend on, handling caching, retries, security headers and the per-protocol quirks of each upstream, and deployable to six different platforms from the same source. What will waste your time is the repository description. The topics are agent-skills and xget, which describes a curated catalog of agent prompt libraries and nothing about caching, and the package manifest declares itself private, so there is no npm package named xget even though the README carries an npm badge. For that badge, read the anchor: it points at the section about accelerating the npm registry, which is a capability rather than a distribution channel. The licensing is the part to settle before you build on this. The repository metadata reports AGPL-3.0 while the manifest declares AGPL-3.0-or-later, and the README never mentions licensing at all, so anyone embedding this in a commercial product needs to decide for themselves what that means rather than guessing from the badge row.
Frequently asked questions
What is Xget?
It is an acceleration layer for developer infrastructure, deployed as a Cloudflare Worker. It sits in front of code hosts, package registries, model hubs and container registries, and handles caching, retries, security headers and the per-protocol differences between those upstreams so you do not have to. The repository metadata describes it as an all-in-one acceleration engine for developer resources.
Is there an npm package called xget?
No. The package manifest in this repository declares itself private, so nothing is published under that name. The npm badge in the README is one of the supported platform badges, pointing at the section about accelerating the npm registry, which is a capability of the deployed Worker rather than a distribution channel for this code.
Can I self-host Xget instead of using Cloudflare Workers?
Yes. The README carries deployment badges for Cloudflare Workers, Vercel, Netlify, Deno and the EdgeOne Pages platform alongside Docker and Podman. The container image is a two-stage build that compiles the Worker with Wrangler and then runs the Cloudflare workerd binary in the runtime stage, so a self-hosted container executes the same engine as the hosted deployment.
What license is Xget under?
The two sources disagree slightly. The repository license field reports AGPL-3.0 while the package manifest declares AGPL-3.0-or-later, and the README does not discuss licensing. The AGPL reaches use over a network, so if you plan to embed this in a product you should settle which grant applies before building on it.
Why does the repository only list agent-skills and xget as topics?
That is what the metadata says, and it does not describe the README. The README is entirely about accelerating developer infrastructure, and the tree has no skills directory. The topic appears to be leftover from something else, so do not judge the project by its topics. The repository also has an AGENTS.md and a CLAUDE.md at the root, which are instructions for coding agents rather than documentation about skills.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/xixu-me-xget)Star history chart for your README
[](https://hysenlabs.com/projects/xixu-me-xget)