# nocode — User Guide

`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 `Dockerfile` that 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.md` first.

**Prerequisites:** None. That is the point.

**Quickest start:**

```bash
docker pull kelseyhightower/nocode
```

```text
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)"
    ```bash
    docker pull kelseyhightower/nocode
    ```

=== "Build from source"
    ```bash
    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 a `go.mod` — you are already writing too much. The project ships no language-specific dependencies.

### Verify

```bash
docker images kelseyhightower/nocode
```

```text
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 `.env` file, a `config.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

```bash
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.md` file defines the acceptance criteria.

## 5. Common Tasks

### Explaining the Project to a Colleague

1. Point them to `https://github.com/kelseyhightower/nocode`.
2. Note that the repository has accrued tens of thousands of stars with essentially no source code.
3. Let the irony land.

### Using nocode as a CI Reminder Step

```bash
docker run --rm kelseyhightower/nocode
echo "No code executed successfully."
```

```text
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

1. Fork the repository.
2. Make no changes.
3. Open a pull request.
4. Reference `CONTRIBUTING.md` in your PR description.

## 6. Troubleshooting

### Error: `docker: command not found`

**Cause:** Docker is not installed on the system.

**Solution:**
1. Install Docker from the official Docker documentation.
2. 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?**

```bash
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.

---

_Generated May 2026 from kelseyhightower/nocode at 6c073b0. AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it. Unofficial; not affiliated with or reviewed by the project._
