Title: GitHub Actions storage stays local: cache and mirrors
URL: https://codemany.com/features/local-cache
Description: Skip GitHub Actions storage limits. Codemany keeps caches, toolchains and package mirrors on your machine, so installs and checkouts start warm every job.
All pages as Markdown: https://codemany.com/llms.txt

---

[Home](https://codemany.com/) › [Features](https://codemany.com/features)

# A local cache and package mirrors

Codemany keeps tool downloads, packages and Docker images on your own machine, not in GitHub Actions storage. Each job reuses what earlier jobs fetched, so installs start warm.

## What stays on the machine

A fresh runner per job could mean a cold start every time. Codemany avoids that. It keeps shared caches next to the runners:

- **Tool cache** for `actions/setup-*` downloads, on Mac and Linux.
- **Go and npm mirrors** on Linux.
- **A Docker Hub mirror** on Linux machines with Docker.
- **A git mirror** that speeds up checkout of public repos.

Your workflow's `actions/cache` steps still work as before. Those still go to GitHub, with GitHub's limits. For how they work, read [the GitHub Actions cache](https://codemany.com/articles/github-actions-cache).

## Package mirrors for Go and npm

A Linux machine runs a small local mirror. It is read-only, so jobs can't publish to it.

- **Go.** Every job gets a `GOPROXY` that points at the mirror. If the mirror is down, Go falls back to proxy.golang.org, then direct.
- **npm.** Jobs from public repos get the npm mirror too. Private repos keep their own registry setup.

The mirror fetches public packages only, without any login. Private packages are never cached. Your `go.sum` and lockfile checks still run. If your workflow sets these variables itself, yours win.

## Docker Hub pull mirror

With Docker on a Linux machine, setup adds a local Docker Hub pull-through cache. Docker pulls go through it. So do each job's buildx builders and the job VMs.

It holds public Docker Hub images only. It refuses pushes, and private images are never cached. If it is down, Docker pulls from Docker Hub directly. This is not a layer cache for your own builds. For that, see [Docker layer caching](https://codemany.com/articles/docker-layer-caching-github-actions).

## A git mirror for checkout

For public repos, Codemany keeps a mirror of the default branch and tags. Before a job, it seeds the work folder from it. Then `actions/checkout` only fetches what is new.

The mirror never fails a job. If it is missing or broken, checkout fetches as usual.

## Tool cache for setup-\* actions

Downloads from `actions/setup-go`, `setup-node`, `setup-python` and other `setup-*` steps stay in `~/.codemany/toolcache`. The next job finds them there. Pre-warm fills it with the versions your workflows ask for:

```
codemany integrations prewarm
```

Details are in [Tools and caching](https://codemany.com/docs/advanced#tools).

## Cleaned up for you

Caches can fill a disk. Codemany caps each one and cleans up by itself:

- The tool cache is pruned past 20 GB.
- The Docker Hub mirror is emptied when it passes 20 GB, or when free disk drops under 20 GB.
- Old Docker build cache and unused images are pruned.
- Each job's runner folder is wiped after the job.

Still short on space? See [self-hosted runner disk full](https://codemany.com/problems/self-hosted-runner-disk-full).

Want numbers? Codemany's nightly [benchmarks](https://codemany.com/benchmarks) show jobs on private code run 1.5× to 4.3× faster than on GitHub's 2-core runners.

## Questions

### Does this replace actions/cache?

No. `actions/cache` still works. The local mirrors make cold steps faster too.

### Does the cache fill my disk?

No. Codemany caps and cleans its caches and job files itself.

### Is anything uploaded?

No. The mirrors and the tool cache live on your machine. Your own `actions/cache` steps still save to GitHub, as before.

## Related

Read next: [the GitHub Actions cache](https://codemany.com/articles/github-actions-cache), [Docker layer caching](https://codemany.com/articles/docker-layer-caching-github-actions), [self-hosted runner disk full](https://codemany.com/problems/self-hosted-runner-disk-full), the [benchmarks](https://codemany.com/benchmarks) and [Tools and caching](https://codemany.com/docs/advanced#tools).

Codemany is $20 a month for 2 machines. Try it free for 14 days, with no card.

[Start a 14-day trial](https://codemany.com/docs/get-started)
