Educational Python IDE for STEM & Robotics students
Project description
NEO Code
An educational Python IDE for STEM & Robotics students (ages 6–12)
NEO Code is a lightweight, kid-friendly Python IDE designed to run on low-resource devices such as Armbian single-board computers (2 GB RAM). It provides a clean coding environment with structured lessons and an interactive REPL — no internet required.
Features
- 🟢 Python editor — syntax highlighting, line numbers, debounced code-change events
- ▶️ Run & Stop — sandboxed
QProcessexecution with 30-second timeout (F5 / F6) - ⚡ REPL mode — live interactive Python console backed by a persistent
python3 -iprocess (F9) - 📤 Output panel — collapsible console showing stdout and stderr in colour
- 📖 Lesson sidebar — VS Code-style activity bar with curriculum browser
- 🎨 Green theme — clean white + #32A852 green palette, easy on young eyes
Requirements
- Python 3.11+
- Linux (tested on x86 and ARM/Armbian)
- A running display server (X11 or Wayland)
- Qt 5.15 libraries (installed via apt or bundled inside the pip wheel)
Installation
1 — Install system Qt libraries (Debian / Ubuntu / Armbian)
PyQt5 pip wheels bundle their own Qt on x86, but on ARM boards (Armbian, Raspberry Pi OS, etc.) it is faster and more reliable to use the distro packages:
sudo apt update
sudo apt install -y \
python3-pyqt5 \
python3-pyqt5.qtwidgets \
python3-pyqt5.qtgui \
python3-pyqt5.qtcore \
libqt5widgets5 \
libqt5gui5 \
libqt5core5a
x86 / desktop users can skip this step — the pip wheel includes Qt automatically.
2 — Install NEO Code
Option A — System Python (simplest, ARM-recommended)
pip install neo-code
neo-code
Option B — Virtual environment with system Qt (ARM-recommended)
Use --system-site-packages so the venv can see the apt-installed PyQt5:
python3 -m venv --system-site-packages ~/.venvs/neo-code
source ~/.venvs/neo-code/bin/activate
pip install neo-code
neo-code
Option C — Fully isolated venv (x86 / desktop)
python3 -m venv ~/.venvs/neo-code
source ~/.venvs/neo-code/bin/activate
pip install neo-code
neo-code
Running from source
git clone https://github.com/MEO-3/neo-code.git
cd neo-code
# ARM — reuse system PyQt5
python3 -m venv --system-site-packages .venv
# x86 — fully isolated
# python3 -m venv .venv
source .venv/bin/activate
pip install -e .
python -m neo_code
Keyboard shortcuts
| Action | Shortcut |
|---|---|
| Run code | F5 |
| Stop execution | F6 |
| Toggle REPL mode | F9 |
| New file | Ctrl+N |
| Open file | Ctrl+O |
| Save file | Ctrl+S |
Project status
| Phase | Status | Description |
|---|---|---|
| 1 — IDE Foundation | ✅ Done | Editor, terminal, toolbar, sidebar, theme, event bus, QProcess runner |
| 2 — REPL mode | ✅ Done | Interactive Python console with persistent process, escape-code filtering |
| 3 — Curriculum | 🔲 Planned | Lesson browser, project templates, student progress |
License
MIT
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
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 neo_code-0.4.0.tar.gz.
File metadata
- Download URL: neo_code-0.4.0.tar.gz
- Upload date:
- Size: 54.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3313bd195ea80883f6f756ae6318bd853a33ee83c467ce5f832f10614e084232
|
|
| MD5 |
b778a4d109e0709abd8625c937c30f69
|
|
| BLAKE2b-256 |
7ca273cd1d63755cfc6f843abc6c6678a1f03898866849d87b8a0e1b8998a1ba
|
File details
Details for the file neo_code-0.4.0-py3-none-any.whl.
File metadata
- Download URL: neo_code-0.4.0-py3-none-any.whl
- Upload date:
- Size: 49.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9da3944e382ab64839a5e67e795fb309550ec7ef3d2750a135e20afc2e72cb6
|
|
| MD5 |
2238ff3bfda86574260f00966c632cd8
|
|
| BLAKE2b-256 |
65f0139f5c03ebde742bfacc37cd6ad547e016c5e5d380719f13bd2d98b83321
|