IXX — executable checklist-style code
Project description
IXX
IXX is executable checklist-style code. It uses plain English comparisons and visible dash blocks instead of braces, indentation, and symbolic clutter.
age = 19
if age less than 18
- say "Not adult"
else
- say "Adult"
Quick start
pip install lark
pip install -e .
Then ixx is a command in your terminal.
Hello World
say "Hello World"
ixx hello.ixx
Variables and string interpolation
name = "Ixxy"
say "Hello, {name}"
Conditions
age = 19
if age less than 18
- say "Not adult"
else
- say "Adult"
The - at the start of a line means it belongs to the block directly above. No indentation rules. No invisible whitespace.
Lists and contains
items = "apple", "banana", "grape"
if items contains "banana"
- say "Found it"
else
- say "No banana"
Loops
count = 3
loop count more than 0
- say "Countdown: {count}"
- count = count - 1
say "Done"
All comparisons
if x is 10 # equal
if x is not 10 # not equal
if x less than 10 # strictly less
if x more than 10 # strictly greater
if x at least 10 # greater or equal
if x at most 10 # less or equal
if list contains x # membership
if text contains x # substring check
Logic
if ready and logged_in
- say "Go"
if tired or bored
- say "Take a break"
if not active
- say "Inactive"
Booleans
active = YES
done = NO
Nested blocks
if user is "Ixxy"
- say "Hello Ixxy"
- if age at least 18
-- say "Adult account"
- else
-- say "Limited account"
CLI
| Command | What it does |
|---|---|
ixx file.ixx |
run a script |
ixx run file.ixx |
run a script (explicit) |
ixx check file.ixx |
check syntax without running |
ixx version |
print the IXX version |
ixx help |
show help and quick-reference |
ixx |
open the interactive shell |
ixx shell |
open the interactive shell |
ixx do "ip wifi" |
run one shell command and exit |
IXX Shell
Open the shell with ixx, then use everyday commands without memorising native syntax.
ixx> ip
Adapter IPv4
----------- ---------------
Wi-Fi 192.168.1.42
ixx> ip wifi
Wi-Fi: 192.168.1.42
ixx> cpu
CPU: AMD Ryzen 9 5950X
Cores: 16
Threads: 32
Usage: 12%
ixx> cpu core-count
AMD Ryzen 9 5950X
Cores: 16
Threads: 32
ixx> ram
RAM
Total: 64.0 GB
Used: 21.0 GB
Free: 43.0 GB
ixx> disk
Drive Label Total Free
----- ------ ------- -------
C: System 2.0 TB 870 GB
ixx> disk space
ixx> disk partitions
ixx> folder size downloads
downloads: 14.2 GB
ixx> open desktop
Opened: C:\Users\you\Desktop
ixx> list downloads
ixx> gpu
GPU: NVIDIA GeForce RTX 4070 SUPER
VRAM: 12.0 GB
Driver: 32.0.15.8157
ixx> gpu vram
ixx> cpu temperature
ixx> cpu speed
ixx> cpu info
ixx> ram free
ixx> ram speed
ixx> wifi
Network: MyNetwork
Signal: 90%
IP: 192.168.1.42
ixx> ip public
Public IP: 203.0.113.5
(via external lookup: api.ipify.org)
ixx> ports
ixx> processes
ixx> find file "*.pdf" in downloads
Single-command mode (useful for scripts and automation):
ixx do "ip"
ixx do "cpu core-count"
ixx do "gpu"
ixx do "folder size downloads"
ixx do "find file *.pdf in downloads"
Notes:
- v0.3.0 is Windows-first for real system commands.
- Cross-platform adapters (Linux, macOS) are planned for a future release.
- Destructive commands (
delete,kill process,copy,move) are still stubbed for safety. - The Python implementation is prototype v0 — not the final runtime.
File extension
IXX source files use the .ixx extension.
hello.ixx
system-info.ixx
deploy-checklist.ixx
Note:
.ixxis also used by C++20 module interface files. Some editors may misdetect.ixxas C++. Install the editor support below to override this association.
Editor support
IXX ships with syntax highlighting for VS Code and Notepad++, plus a Windows file icon.
VS Code
The editor/vscode/ folder contains a VS Code language extension that:
- Registers
.ixxas IXX (overriding C++ detection) - Highlights comments, strings, keywords, booleans, numbers, and operators
- Highlights string interpolation (
{name}inside double-quoted strings) - Configures
#as the line comment character
See editor/vscode/README.md for installation
instructions.
Notepad++
The editor/notepad-plus-plus/ folder contains a User Defined Language (UDL)
XML for Notepad++ that highlights .ixx files with the same colour scheme.
See editor/notepad-plus-plus/README.md
for step-by-step installation instructions.
Windows file icon
The IXX icon asset lives in assets/:
assets/
ixx-icon-source.png source image (673×673)
generate_icons.py generates all sizes automatically
generated/
ixx-icon-16.png
ixx-icon-24.png
ixx-icon-32.png
ixx-icon-48.png
ixx-icon-64.png
ixx-icon-128.png
ixx-icon-256.png
ixx-icon.ico multi-size Windows icon
To generate the icons (requires Pillow):
pip install Pillow
python assets/generate_icons.py
To associate .ixx files with the IXX icon on Windows, see
editor/windows/file-association.md.
SVG note: SVG output is intentionally skipped — converting a raster PNG to SVG would embed the bitmap data rather than produce a true vector image. PNG and ICO are the canonical IXX icon formats.
Current limitations
- Requires Python 3.11+ and the
larklibrary. - No functions, file I/O, or imports yet.
- Variable names must be single words (no spaces).
- Reserved words cannot be used as variable names:
if,else,loop,say,and,or,not,is,less,more,than,at,least,most,contains,YES,NO. - Shell system commands are Windows-first in v0.3.0; Linux/macOS adapters are planned.
- Destructive commands (
delete,kill process,copy,move) exist in the guidance tree but do not execute yet.
This is prototype v0
The current implementation uses Python and the Lark parser library. This is a proof of concept to validate the grammar and interpreter design.
Python is the implementation language for this phase only. It is not the long-term identity of IXX.
The long-term goal is a standalone IXX binary that requires nothing else to be installed — likely written in Go, Rust, or a similar compiled language. See spec/roadmap.md for the full plan.
Tests
The prototype ships with a full automated test suite.
python -m unittest discover -s tests -p "test*.py"
282 tests passing across: language basics, strings, numbers, booleans, conditions, dash blocks, loops, lists, comparisons, contains, logic, error handling, CLI commands, shell guidance, command handlers, path aliases, format helpers, banner, and new system commands.
Project layout
ixx/ prototype interpreter (Python)
examples/ example .ixx scripts
spec/ language spec, shell design, roadmap
docs/ getting started guide
tests/ automated tests
assets/ icon source and generate_icons.py script
generated/ generated PNG sizes and ixx-icon.ico
editor/ syntax highlighting and file association
vscode/ VS Code language extension
notepad-plus-plus/ Notepad++ User Defined Language
windows/ Windows file association documentation
CHANGELOG.md version history
More
spec/language.md— full language referencespec/shell.md— planned interactive shell designspec/roadmap.md— where IXX is goingdocs/getting-started.md— step by step setupeditor/vscode/README.md— VS Code extensioneditor/notepad-plus-plus/README.md— Notepad++ UDLeditor/windows/file-association.md— Windows file icon and association
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ixx-0.3.3.tar.gz.
File metadata
- Download URL: ixx-0.3.3.tar.gz
- Upload date:
- Size: 59.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2610918529059c24beac516c610640e3df053237e2573fa52034a60d13282a8
|
|
| MD5 |
744c0c5fc40069e6e0141590977984d3
|
|
| BLAKE2b-256 |
4124f96e816111aeecb18c8958cf5208d7876508fb07cda2f8c05e952ccdbded
|
File details
Details for the file ixx-0.3.3-py3-none-any.whl.
File metadata
- Download URL: ixx-0.3.3-py3-none-any.whl
- Upload date:
- Size: 65.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c07d2a672940ca5eaf610b433c608ba44754b980ee6c389efbe9f857e85a5b7c
|
|
| MD5 |
3b997b7d5755db4a5c742d364e8f56d1
|
|
| BLAKE2b-256 |
45efaa60e906d363a396570d26bda8404baed8134949cd2fc4c0c9d152baa74e
|