How 1975sg/stdio-noob works
stdio::noob is an Electron learning environment pairing a real terminal in an Alpine/QEMU guest with an AI tutor that guides but does not edit the learner’s work. The main journey is: start or resume a session, review syllabus progress, receive one-step guidance, run commands in the guest, and preserve progress for the next session. The documented curriculum spans sandboxing and Linux isolation through a from-scratch assembler/compiler bootstrap to a self-hosting GNU toolchain. The graph reflects documented capabilities; unsampled curriculum content is represented by its enclosing directory.
Main entry points: main.js Electron app · preload.js PTY bridge · session.js Session coordinator · state.js Greeting and state
Components 17
App shell
- Electron app
app/electron/main.js - Terminal pane
app/electron/index.html - PTY bridge
app/electron/preload.js - Tutor pane
app/electron/main.js
Course guidance
- Prompt injection
app/electron/tutor.js - Course rules
app/electron/curriculum-prompt.js - Course syllabus
app/syllabus - Syllabus loader
app/syllabus/parse.js - Bootstrap materials
app/syllabus/assets/stage0
Guest session
- Session coordinator
app/electron/session.js - Guest launcher
app/electron/vm.js - QEMU guest
- SSH file access
app/electron/guest-fs.js
Learner progress
- Greeting and state
app/electron/state.js - Learner memory
noob-file-schema
Other components
- Learner
- Claude chat
Connections 26
- Learner → Electron app: starts session
- Learner → Terminal pane: types commands
- Electron app → Terminal pane: loads UI
- Terminal pane → PTY bridge: sends input
- PTY bridge → Electron app: forwards IPC
- Electron app → PTY bridge: sends terminal data
- Electron app → Tutor pane: loads tutor
- Tutor pane → Claude chat: opens chat
- Electron app → Prompt injection: requests injection
- Prompt injection → Course rules: builds prompt
- Prompt injection → Tutor pane: inserts and sends
- Course rules → Course syllabus: references stages
- Course rules → Learner memory: references progress
- Learner → Claude chat: receives guidance
- Electron app → Session coordinator: starts real session
- Session coordinator → Guest launcher: launches guest
- Guest launcher → QEMU guest: spawns guest
- QEMU guest → PTY bridge: streams terminal
- Session coordinator → SSH file access: reads and seeds files
- SSH file access → QEMU guest: transfers files over SSH
- Session coordinator → Greeting and state: builds greeting
- Greeting and state → Syllabus loader: loads syllabus
- Syllabus loader → Course syllabus: parses milestones
- Greeting and state → Learner memory: reads progress
- Greeting and state → PTY bridge: prints greeting
- Bootstrap materials → Learner: supports hands-on stages