🪟
Windows 64-bit
Native Win64 executable. No installer, no registry entries — just a single .exe you can run from anywhere.
Plan9Basic.exe Win64
⬇ Download 🔧 How to build it
🪟
Windows 32-bit
The same editor and engine built for 32-bit Windows, for an older machine or an older install. Identical language, identical libraries.
Plan9Basic.exe Win32
⬇ Download 🔧 How to build it
🐧
Linux 64-bit
Single self-contained binary for 64-bit Linux. One chmod and you're running. No libraries to install.
Plan9Basic Linux64
⬇ Download 🔧 How to build it
🤖
Android
Full Android APK with a built-in script editor and interpreter. Write and run BASIC scripts right on your phone or tablet.
Plan9Basic.apk Android 64-bit
⬇ Download 🔧 How to build it

🔐 About the downloads

The binaries are not code-signed. The first time you run the downloaded .exe, Windows will show “Windows protected your PC” — that warning is about the missing signing certificate, not about anything found in the file. Choose More info → Run anyway if you decide to trust it. If you would rather not, building it yourself takes a few minutes and is documented below; a binary you compiled never crossed the network, so it never raises the question.

On Android the APK is installed by sideloading, which the Android section walks through. It is not on Google Play.

Every release publishes the SHA-256 of each file next to it, so you can confirm that what arrived is what was published. The checksums live with the release rather than on this page, because a checksum printed here would describe one build and then quietly outlive it:

╯ verify
# Windows
certutil -hashfile Plan9Basic.exe SHA256

# Linux
sha256sum Plan9Basic

Downloads always come from the releases page, where every earlier version stays available.

🪟 Windows 64-bit

🪟

Windows 64-bit

Windows 10 / 11 — x86-64 architecture

FilePlan9Basic.exe
Architecturex86-64 (64-bit)
RequiresWindows 10 or later
DependenciesNone — fully self-contained
InstallNo installer needed — just run the .exe

Getting started on Windows

1

Build the executable

Open Plan9Basic.dproj in RAD Studio, select the Windows 64-bit target and build, or run dcc64 Plan9Basic.dpr from the repository root. For the 32-bit build, pick Windows 32-bit instead, or run dcc32 in place of dcc64. Either produces Plan9Basic.exe, which you can put in any folder — your Desktop, C:\Tools\, or anywhere convenient.

2

Write your first script

Open the application by clicking at the Editor button to open the code editor and type the code below:

╯ hello.bas
PRINTLN "Hello from Plan9Basic!"
LET name$ = "World"
PRINTLN "Hello, " + name$ + "!"
3

Run it from the application

Click the Run option to execute the applet:

First launch: the application fetches Translations.ini once, in the background, so the first run wants a network connection. After that it is cached beside the executable and never fetched again. A binary you compiled yourself does not trip SmartScreen, since it never crossed the network; a downloaded one does, because it is not code-signed — see About the downloads.

Passing arguments to scripts

Arguments after the script path are available via paramcount and paramstr$(n):

╯ cmd.exe
C:\Tools> Plan9Basic.exe Alice 42
╯ myapp.bas
PRINTLN "Args: "; paramcount()       ' Args: 2
PRINTLN paramstr$(1)                 ' Alice
PRINTLN paramstr$(2)                 ' 42

🐧 Linux 64-bit

🐧

Linux 64-bit

Ubuntu, Debian, Fedora, Arch — any modern x86-64 distribution

FilePlan9Basic (no extension)
Architecturex86-64 (64-bit)
RequiresLinux kernel 4.x+ — any modern distro
DependenciesNone — statically linked
InstallBuild, chmod +x, run

Getting started on Linux

1

Build it, then make it executable

Build the Linux 64-bit target from RAD Studio over PAServer, then grant the result execute permission. The binary has no extension — this is normal on Linux.

╯ bash
# Copy the binary the build produced
$ mv ~/Downloads/Plan9Basic ~/bin/Plan9Basic

# Make it executable
$ chmod +x ~/bin/Plan9Basic

# Run
$ ~/bin/Plan9Basic
2

(Optional) Install system-wide

Move the binary to /usr/local/bin so it's on your $PATH globally:

╯ bash
$ sudo mv Plan9Basic /usr/local/bin/plan9basic
$ sudo chmod +x /usr/local/bin/plan9basic
# Now usable from anywhere:
$ plan9basic

🤖 Android

🤖

Android

64-bit ARM — Android 9.0 (Pie) or later

FilePlan9Basic.apk
ArchitectureARM64 (64-bit)
RequiresAndroid 9.0 (API 28) or later
DistributionDirect APK — not on Google Play (sideload required)
IncludesBuilt-in code editor, file browser, and interpreter

Installing on Android (sideloading)

Because Plan9Basic can be downloaded as a direct APK (not via the Play Store), you need to allow installation from unknown sources. This is a one-time setting.

1

Enable Unknown Sources

Go to Settings → Apps → Special app access → Install unknown apps. Select your browser or file manager, then enable "Allow from this source".

The exact path varies by manufacturer — Samsung users: Settings → Biometrics & Security → Install unknown apps.

2

Build the APK

Select the Android 64-bit target in RAD Studio and build. The result is Plan9Basic.apk, which you can install straight over USB with adb install, or transfer to the device however you prefer.

3

Install the APK

adb install puts it on a device already connected over USB. Transferred by hand instead, open your Files app, tap Plan9Basic.apk, and follow the on-screen prompts.

4

Open and write your first script

Launch Plan9Basic from your app drawer. The built-in editor opens immediately. Tap New, enter your code, and tap Run.

╯ first_script.bas (type in the built-in editor)
' Detect the platform and greet
LET platform$ = os_name$()
LET arch$ = os_architecture$()
PRINTLN "Running on " + platform$ + " (" + arch$ + ")"
PRINTLN "Plan9Basic is ready!"
Security note: Installing APKs from outside the Play Store bypasses Google’s app review. Only install software from sources you trust. Remember to disable Install unknown apps after installation if you prefer.

⚙ Translations.ini

On the first launch, Plan9Basic automatically downloads Translations.ini from the project server in the background. An internet connection is required the very first time you run the application, after that, the file is cached locally alongside the executable and no further downloads are needed.

Translations.ini controls all the text strings displayed by the runtime environment: error messages, UI labels, command prompts, and system notifications. It uses a standard INI key=value format and is placed in the same folder as the Plan9Basic executable (or inside the app data directory on Android).

╯ Folder layout (Windows example)
C:\Tools\Plan9Basic\
├── Plan9Basic.exe
├── Translations.ini
└── scripts\
    ├── hello.bas
    └── myapp.bas
ⓘ You can customise Translations.ini to localise runtime messages for your own language. The file uses standard INI key=value format.
Translations.ini will be improved in future versions of the software to allow the use of other languages ​​during the environment's execution.

❓ Frequently Asked Questions

Is Plan9Basic free?
Yes. Plan9Basic is free to download and use. The interpreter, all libraries, and the example scripts are included at no cost.
Do I need to install anything else (runtimes, DLLs)?
No. Each binary is self-contained. The Windows .exe and Linux binary require no external runtimes, libraries, or frameworks. The Android .apk is similarly self-contained.
Are 32-bit builds available?
Currently only 64-bit builds are distributed.
My antivirus flagged the .exe. Is it safe?
This is a false positive — a common occurrence with freshly built, unsigned executables. The binary is built directly from the Delphi source in this repository. You can inspect the source code to verify. If your organisation requires signed binaries, compile from source and sign with your own certificate.
What is the Translations.ini file for?
Translations.ini localises the error messages, prompts, and UI strings shown by the runtime environment. Without it the interpreter falls back to built-in English text.