What is the FJ file format?
A .fj file contains source code for FlipJump, an esoteric one-instruction programming language created by Tom Herman (tomhea) around 2021. FlipJump is a One Instruction Set Computer, or OISC. Its single instruction has the form a;b, which flips the bit at address a and then jumps to address b. That one operation is enough to make the language Turing-complete.
A .fj file is plain text. Alongside raw a;b instructions it can hold constants like x = 6;, labels, parameterized macros, rep(n, i) repetitions, namespaces, and assembly-time expressions. The project ships a standard library split into the bit, hex, and stl namespaces with macros for input, output, math, and control flow. Comments begin with //.
Security & safety
RISK: LOWA .fj file is plain-text source code and cannot run on its own; it only executes when assembled and run by the FlipJump interpreter. There are no macros that touch the host OS and no embedded binaries, so opening one in an editor is safe. As with any source code, only assemble and run files from sources you trust.
Format details
in a nutshellPrograms that open FJ files
pip install flipjump, then run fj yourfile.fj to assemble and execute the program, or fj --asm yourfile.fj -o out.fjm to only assemble. .fj file to read and edit the FlipJump assembly with plain-text highlighting and search across the codebase. pip install flipjump, then run fj yourfile.fj in Terminal to assemble and run the program. .fj file to edit the source and inspect the standard-library macros it references. pip install flipjump, then run fj yourfile.fj to assemble and run, or fj --run out.fjm to execute a compiled file. .fj source in a terminal editor to make quick edits before assembling with fj. Technical details
deep spec| Encoding | UTF-8 / ASCII plain text |
| Byte order | N/A (text) |
| Container | None; flat text file |
| Compression | None (source is uncompressed text) |
| Typical size | A few hundred bytes to tens of kilobytes |
| Structure | Human-readable FlipJump assembly. Each statement is the single instruction 'a;b' (flip the bit at address a, then jump to address b), with sugar forms like ';J', 'F;' and ';'. Files also contain constant definitions (x = 6;), labels (label:), macro definitions with parameters and temporary labels, rep(n, i) repetitions, namespaces, memory-segment and address-reservation directives, and assembly-time arithmetic/bitwise/logical expressions. Comments start with //. |
| Platforms | Windows, macOS, Linux |
| Notes | The standard library ships three namespaces (bit, hex, stl) with macros for I/O, math, logic, comparison, pointers, and stack/functions. The wflip operation flips multiple bits in a word at once. Source is assembled to the binary .fjm format for execution. |
| Language Paradigm | One Instruction Set Computer (OISC), esoteric |
| Toolchain | flipjump Python package providing the fj command-line assembler and interpreter |
| Released | 2021 |
| Latest version | FlipJump 1.5.0 (June 2026) |
| Specification | esolangs.org |
FJ conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about FJ files.
Frequently asked questions
What is a .fj file?
How do I open a .fj file?
pip install flipjump and run fj yourfile.fj.How do I run a FlipJump program?
fj command from the flipjump package. fj hello.fj assembles and runs in one step; fj --asm hello.fj -o hello.fjm assembles only, and fj --run hello.fjm executes the compiled file.What is the difference between .fj and .fjm?
.fj is the human-readable FlipJump source you write, while .fjm is the binary FlipJump Machine file produced by the assembler that the interpreter runs.