# Brainfuck Decoder

> Run a Brainfuck program and read what it prints.

- Page: https://decoder.tools/brainfuck-decoder
- Category: Classical & Obfuscated Ciphers
- Status: live, runs in the browser
- Last reviewed: 2026-10-23

A Brainfuck interpreter executes a program written in Brainfuck, a minimal esoteric programming language with only eight commands, and prints its output. In puzzles and CTFs, a wall of `+`, `-`, `<`, `>`, `[` and `]` is usually a hidden message that you get by running it.

## Example

```text Input
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
```

```text Output
Hello World!
```

The interpreter also reports how many steps the program took (906 for this one).

## The eight commands

Brainfuck works on a tape of 30,000 byte-sized cells, all starting at 0, with a pointer at the first cell:

| Command | Meaning |
|---|---|
| `>` | Move the pointer one cell right |
| `<` | Move the pointer one cell left |
| `+` | Add 1 to the current cell (255 wraps to 0) |
| `-` | Subtract 1 from the current cell (0 wraps to 255) |
| `.` | Print the current cell as a character |
| `,` | Read one input character into the current cell |
| `[` | If the current cell is 0, jump past the matching `]` |
| `]` | If the current cell is not 0, jump back to the matching `[` |

Every other character is a comment and is ignored, which is why Brainfuck code can be hidden inside ordinary text.

The language was created by Urban Müller in 1993, with the goal of making the smallest possible compiler. Despite its size it is Turing-complete.

## Reading the Hello World program

The opening `++++++++[ … ]` is a loop that runs 8 times. Inside, another loop fills several cells with multiples of 8 so they land near the ASCII codes of the letters needed (72 for `H`, 101 for `e` and so on). The rest of the program nudges those cells up or down with `+` and `-` and prints them with `.`.

## How to use the Brainfuck interpreter

1. Paste the program. Comment text is ignored.
2. Read the output.
3. If you see "exceeded step limit", the program loops forever or is very long. The interpreter stops after 5 million steps.

This interpreter doesn't support the `,` input command, so programs that read input get nothing. JSFuck (JavaScript written with only `[]()!+`) is a different language and isn't supported either.

## At a glance

| | |
|---|---|
| Created | Urban Müller, 1993 |
| Commands | 8: `> < + - . , [ ]` |
| Memory | 30,000 byte cells, wrapping 0–255 |
| Step limit here | 5,000,000 |

## FAQ

### Is Brainfuck a cipher?

No, it's a programming language. In puzzles it's used as a code, because the message only appears when the program is run.

### What is the difference between Brainfuck and Ook!?

Ook! is Brainfuck with each command replaced by a pair of words such as `Ook. Ook?`. Translate the pairs back to Brainfuck commands and it runs here.

### Why does my program print nothing?

It may never reach a `.`, it may print control characters you can't see, or it may expect input from `,`, which isn't supported here.
