kelseyhightower/nocode is a satirical software engineering project that advocates for the most reliable, bug-free, and secure solution to any programming problem: writing no code at all. By containing virtually no source code itself, the repository demonstrates the principle through practice.
1. Quick Start
nocode makes the case that the best code is no code. Every line you don't write is a line you don't have to debug, secure, or maintain.
What this project provides:
- A manifesto on code reduction as an engineering discipline
- A
Dockerfilethat packages the no-code philosophy into a container image - Contribution guidelines that uphold the no-code standard
- A style guide for keeping your non-code consistent
Tip
The fastest way to adopt the no-code philosophy is to close your editor before typing anything. If you must open it, read
STYLE.mdfirst.
Prerequisites: None. That is the point.
Quickest start:
docker pull kelseyhightower/nocode
Using default tag: latest
Status: Image is up to date for kelseyhightower/nocode:latest
2. Installation
The project ships as a Docker image. No runtime environment, package manager, or language toolchain is required.
System Requirements
| Requirement | Value |
|---|---|
| Docker | Any version capable of pulling a public image |
| Disk space | Minimal — the image contains no application code |
| Network | Required to pull from Docker Hub |
| CPU / RAM | No measurable baseline — no code runs |
Install Methods
Docker (recommended)
docker pull kelseyhightower/nocode
Build from source
git clone https://github.com/kelseyhightower/nocode.git
cd nocode
docker build -t nocode .
Important
If you are reaching for a package manager, a
requirements.txt, or ago.mod— you are already writing too much. The project ships no language-specific dependencies.
Verify
docker images kelseyhightower/nocode
REPOSITORY TAG IMAGE ID CREATED SIZE
kelseyhightower/nocode latest ... ... ...
A successful pull with no errors confirms installation. There is no --version flag or health endpoint, because there is no application.
3. Configuration
There are no configuration files, environment variables, or runtime flags. This is by design.
Note
If you find yourself writing a
.envfile, aconfig.yaml, or any settings file — you are adding code. Revisit the project philosophy before proceeding.
For container deployment options such as resource limits and network policies, see the Admin Guide.
4. Core Usage
The primary usage pattern is not using the software. The secondary pattern is referencing the project as a reminder before starting any new feature implementation.
Running the Container
docker run --rm kelseyhightower/nocode
The container exits immediately. No output is expected, because there is no application logic to execute.
Tip
Use the container in CI pipelines as a baseline: if your build produces more output than
kelseyhightower/nocode, consider whether every line was necessary.
Reading the Style Guide
The repository includes STYLE.md, which documents the coding conventions for this project. Because the project contains no code, the style guide is necessarily brief. Read it before contributing.
Reading the Contributing Guide
CONTRIBUTING.md describes how to contribute to the project. Contributions that add code are subject to the no-code review standard.
Warning
Pull requests that introduce executable source code, configuration files, or test suites are likely to be rejected. The
CONTRIBUTING.mdfile defines the acceptance criteria.
5. Common Tasks
Explaining the Project to a Colleague
- Point them to
https://github.com/kelseyhightower/nocode. - Note that the repository has accrued tens of thousands of stars with essentially no source code.
- Let the irony land.
Using nocode as a CI Reminder Step
docker run --rm kelseyhightower/nocode
echo "No code executed successfully."
No code executed successfully.
Tip
Add this step at the start of a sprint planning session to reinforce the principle before new work is scoped.
Contributing Without Adding Code
- Fork the repository.
- Make no changes.
- Open a pull request.
- Reference
CONTRIBUTING.mdin your PR description.
6. Troubleshooting
Error: docker: command not found
Cause: Docker is not installed on the system.
Solution:
- Install Docker from the official Docker documentation.
- Re-run
docker pull kelseyhightower/nocode.
Prevention: Install Docker before attempting to pull any image.
Issue: Container exits immediately with no output
Cause: This is the expected behavior. There is no application to run.
Solution: No action required. Exit code 0 confirms success.
Prevention: N/A — this is not a problem.
Note
Community issue #4759 ("No Error") confirms this behavior is intentional and has been acknowledged by maintainers.
Issue: Won't run on legacy hardware
Cause: Pre-containerization hardware does not support Docker. Port configuration is irrelevant because there are no listening services.
Solution: Switch to a Docker-capable host.
Prevention: Use hardware that supports containerization.
Note
This mirrors community issue #5607 ("Won't run on my ENIAC. Please fix port."). The project does not expose any network ports because it runs no server processes.
Issue: Feature request rejected
Cause: Adding platform-specific or language-specific support requires writing code, which conflicts with the project's stated purpose.
Solution: Embrace the no-code philosophy. The project is platform-agnostic by virtue of containing no platform-specific code.
Prevention: Read CONTRIBUTING.md before opening feature requests.
Note
Open issues #5662 (Ukrainian language), #5526 (HarmonyOS), and closed issue #5482 (Holy C interoperability) all request additions that would require writing code. These conflict with the project's core design.
7. FAQ
Q: What does this project actually do?
It runs no code. The value is philosophical: a reference point for the idea that reducing code — rather than adding it — is a legitimate and often superior engineering decision.
Q: Is there a CLI?
No. There are no CLI commands, subcommands, or flags.
Q: Can I use this in production?
The container can be deployed anywhere Docker runs. It will consume no meaningful CPU, memory, or I/O because it executes no logic.
Q: Why does the Issues tracker contain non-English content and blank comments?
The repository's status as a widely-starred "empty" project attracts commentary. The issue tracker is not moderated and serves as a secondary artifact of the project's cultural reach.
Q: Is there a configuration file I can edit?
No. The project contains no configuration files. If you need configuration, you are solving a different problem than the one this project addresses.
Q: How do I update to the latest version?
docker pull kelseyhightower/nocode:latest
Pull the latest image. There are no migration steps, schema changes, or breaking flags — because there is no application state.