Download or Build Plan9Basic
Plan9Basic runs natively on Windows, Linux, and Android. Take the ready-made executable for your platform, or build it yourself from the repository — which is the whole project, the IDE and the libraries and the BASIC engine together. Both routes end at the same thing: one self-contained file, with no runtime and no dependencies to install.
.exe you can run from anywhere.chmod and you're running. No libraries to install.🔐 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:
# 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
| File | Plan9Basic.exe |
| Architecture | x86-64 (64-bit) |
| Requires | Windows 10 or later |
| Dependencies | None — fully self-contained |
| Install | No installer needed — just run the .exe |
Getting started on Windows
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.
Write your first script
Open the application by clicking at the Editor button to open the code editor and type the code below:
PRINTLN "Hello from Plan9Basic!" LET name$ = "World" PRINTLN "Hello, " + name$ + "!"
Run it from the application
Click the Run option to execute the applet:
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):
C:\Tools> Plan9Basic.exe Alice 42
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
| File | Plan9Basic (no extension) |
| Architecture | x86-64 (64-bit) |
| Requires | Linux kernel 4.x+ — any modern distro |
| Dependencies | None — statically linked |
| Install | Build, chmod +x, run |
Getting started on Linux
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.
# Copy the binary the build produced $ mv ~/Downloads/Plan9Basic ~/bin/Plan9Basic # Make it executable $ chmod +x ~/bin/Plan9Basic # Run $ ~/bin/Plan9Basic
(Optional) Install system-wide
Move the binary to /usr/local/bin so it's on your $PATH globally:
$ 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
| File | Plan9Basic.apk |
| Architecture | ARM64 (64-bit) |
| Requires | Android 9.0 (API 28) or later |
| Distribution | Direct APK — not on Google Play (sideload required) |
| Includes | Built-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.
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.
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.
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.
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.
' Detect the platform and greet LET platform$ = os_name$() LET arch$ = os_architecture$() PRINTLN "Running on " + platform$ + " (" + arch$ + ")" PRINTLN "Plan9Basic is ready!"
⚙ 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).
C:\Tools\Plan9Basic\
├── Plan9Basic.exe
├── Translations.ini
└── scripts\
├── hello.bas
└── myapp.basTranslations.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
.exe and Linux binary require no external runtimes, libraries, or frameworks. The Android .apk is similarly self-contained.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.