Skip to main content

IXX — executable checklist-style code

Project description

IXX

IXX is a replacement command layer — readable scripts, readable shell, one syntax, every machine.

It is two things in one package:

  • A small language that looks like a checklist. Plain English comparisons, visible dash blocks, no braces, no indentation rules.
  • An interactive shell that replaces the everyday parts of PowerShell, CMD, Bash, and macOS Terminal with a single consistent syntax.
age = 19

if age less than 18
- say "Not adult"
else
- say "Adult"
ixx> ip wifi
  Wi-Fi: 192.168.1.42

ixx> memory used
  Used:  15.5 GB  (50%)

ixx> downloads size
  downloads: 14.2 GB

Quick start

pip install ixx

Then ixx is a command in your terminal.

pip install --upgrade ixx

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 demo run the bundled demo script
ixx demo interactive step-by-step interactive walkthrough
ixx setup register .ixx file type and icon on Windows
ixx showoff animated terminal presentation of IXX features
ixx showoff quick short trailer (~8s)
ixx showoff full extended presentation (~50s)
ixx showoff plain no animation, plain text output

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.x 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.

IXX also understands natural synonyms — you do not have to spell out the canonical command:

ixx> memory used          → same as: ram usage
ixx> processor cores      → same as: cpu core-count
ixx> wifi address         → same as: ip wifi
ixx> downloads size       → same as: folder size downloads
ixx> storage              → same as: disk

File extension

IXX source files use the .ixx extension.

hello.ixx
system-info.ixx
deploy-checklist.ixx

Note: .ixx is also used by C++20 module interface files. Some editors may misdetect .ixx as 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 .ixx as 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 lark library.
  • Variable names must be single words (no spaces).
  • String literals do not process escape sequences ("\n" is literally backslash-n).
  • Shell system commands are Windows-first; 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 two test suites.

Python unit tests

python -m unittest discover -s tests -p "test*.py"

507 tests passing across: language basics, strings, numbers, booleans, conditions, dash blocks, loops, lists, comparisons, contains, logic, functions, built-ins (text/math/lists/color/file I/O), try/catch, nothing, scoping, error handling, CLI commands, shell guidance, command handlers, path aliases, format helpers, system commands, and showoff presentation.

End-to-end StressTest suite

StressTest\run-all.cmd

A manual CLI suite that runs 30 positive .ixx stress tests plus 12 ExpectedFailure scripts against the installed ixx command. Tests cover every language feature end-to-end. Temp files are written to StressTest\tmp\ and cleaned between runs.

Release gate: both suites must pass before publishing a new version:

Suite Expected result
python -m unittest discover 0 failures, 0 errors
StressTest\run-all.cmd FILE FAIL: 0 / ASSERT FAIL: 0 / EXPECTED FAIL FAIL: 0

Project layout

ixx/            prototype interpreter (Python)
examples/       example .ixx scripts
spec/           language spec, shell design, roadmap, dictionary
docs/           getting started guide
tests/          Python unit test suite
StressTest/     end-to-end CLI stress suite (run-all.cmd)
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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ixx-0.6.5.tar.gz (156.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ixx-0.6.5-py3-none-any.whl (136.4 kB view details)

Uploaded Python 3

File details

Details for the file ixx-0.6.5.tar.gz.

File metadata

  • Download URL: ixx-0.6.5.tar.gz
  • Upload date:
  • Size: 156.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for ixx-0.6.5.tar.gz
Algorithm Hash digest
SHA256 bb727f85029374f1c2f8c139db5f5b2c583c6de5d1614383df0de2ed107eca22
MD5 12f5edc5beee48c46a0050fda842f9b2
BLAKE2b-256 cce6d91a03718fc24f8fea86ecce55e367cacbf919c004556323c6919362eb90

See more details on using hashes here.

File details

Details for the file ixx-0.6.5-py3-none-any.whl.

File metadata

  • Download URL: ixx-0.6.5-py3-none-any.whl
  • Upload date:
  • Size: 136.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for ixx-0.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b1208cc26262d077185004ca7030ff1cba4518ab20388d2b3e5e7bd2b8ad8b1b
MD5 10de714a8119f71660df2c44780dc03b
BLAKE2b-256 3e326fecfb1bd877d5dadb32631e2701c38006a88c496afd9193bdf24740caf9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page