Encode and decode classical ciphers in your terminal, updated live as you type.
go run .Or build a binary with go build -o classical-ciphers . and run
./classical-ciphers.
Type a message and the output updates on every keystroke. Use ctrl+n and
ctrl+p to move between ciphers. Use ctrl+r to switch between encoding and
decoding. Press tab to move focus to the key field for ciphers that take a
key.
Atbash and rot13 need no key. Three ciphers read the key field. Caesar treats it as a numeric shift. Vigenère uses it as a keyword. Rail fence interprets it as a number of rails. Letters keep their case, and characters that are not letters pass through unchanged.
esc or ctrl+c quits.
These are historical ciphers meant for learning and for fun. They offer no real security and can be broken quickly with well-known techniques. Do not use them to protect anything sensitive. For real encryption, reach for a vetted modern library instead.
Licensed under the MIT License (see LICENSE). Contributions are welcome; see CONTRIBUTING.md.
If you use this project, please cite it. A machine-readable CITATION.cff is included; expand below for a BibTeX entry.
BibTeX
@software{Vulpes_classical-ciphers_2026,
author = {Vulpes, Aesthetic},
title = {classical-ciphers},
year = {2026},
month = jul,
version = {0.1.0},
url = {https://github.com/tui-apps/classical-ciphers}
}Part of the tui-apps collection
Six small, single-purpose terminal apps.
| App | What it does |
|---|---|
| calc | live calculator |
| algebra-visual | function grapher |
| classical-ciphers | cipher encoder and decoder (this repo) |
| crypto-charts | crypto price charts |
| totp | TOTP authenticator |
| life | Conway's Game of Life |

