Turn any folder into a learning workspace.
ALO is a local-first CLI/TUI for building a personal learning system around any subject. It keeps your profile, roadmap, lessons, weaknesses, reviews, and progress in Markdown files you can read, edit, and commit.
pip install alo-learning-os
aloCheck the installation:
alo version
alo doctor(Note: The PyPI distribution name is alo-learning-os. The installed command is alo.)
Most learning starts with enthusiasm and then disappears into scattered notes, unfinished tutorials, lost context, too many tabs, and generic study plans with no real review loop or progress history.
ALO’s answer is simple:
- One folder per subject
- Markdown state files
- A personal roadmap tailored to you
- Daily focused learning sessions
- Built-in review loop for your weaknesses
- Safe Git history to track progress
pip install alo-learning-os
mkdir my-python-learning
cd my-python-learning
aloThe workflow is straightforward. You can use the interactive dashboard (alo) or direct CLI commands:
init → config → paths → roadmap → learn → review → sync
$ alo doctor
Checks Python, Git, workspace status, and LLM readiness.
$ alo paths
Generates learning path options based on your profile.
$ alo learn
Starts a focused learning session from the current roadmap.
(Screenshots and a short demo GIF are planned).
Nothing is hidden in a database. Nothing is locked inside a web app. The workspace is just files.
my-python-learning/
├─ learning-profile.md
├─ skill-map.md
├─ learning-paths.md
├─ roadmap.md
├─ weaknesses.md
├─ progress-log.md
├─ tutor-rules.md
└─ privacy-rules.md
- Not a course marketplace
- Not a hosted learning platform
- Not a notes app
- Not a chatbot skin
ALO is the layer that keeps your learning process organized.
- Developers learning new stacks
- Designers learning product/UX
- Product managers building structured knowledge
- Students who want versioned learning notes
- Self-learners who want a review loop
These are normal Markdown files. You own them. You can read them. You can edit them. You can commit them.
| File | Description |
|---|---|
learning-profile.md |
Your background, learning goals, and experience level |
skill-map.md |
An ongoing map of skills you've acquired or are currently targeting |
learning-paths.md |
Proposed learning paths generated by the LLM based on your profile |
roadmap.md |
The detailed step-by-step curriculum for your active learning path |
weaknesses.md |
A tracked list of concepts you need to review and practice more |
progress-log.md |
A log of lessons completed, assessments, and daily progress |
tutor-rules.md |
Custom instructions for how the LLM should teach and interact |
privacy-rules.md |
Rules detailing what context the LLM is allowed or forbidden to use |
ALO supports LLM-assisted features for generating personalized roadmaps and lessons.
Safe API Guidance:
- Recommended:
keyringmode (stores securely in your OS credential manager) - Alternative:
envmode (reads from an environment variable name) - Never paste keys into Markdown
- Never commit keys
Example for OpenAI-compatible providers:
Provider: openai-compatible
Base URL: https://api.example.com/v1
Model: gpt-4o-mini
Storage: keyring
ALO takes Git sync seriously to prevent accidental secret leaks or unwanted file tracking.
- ALO never uses
git add . - Only known learning files are staged.
- Unsafe staged files block sync.
- Secret-looking content blocks commits.
- Dry-run is available.
alo sync --dry-run
alo sync --no-push| Command | Description |
|---|---|
alo |
Opens the interactive dashboard TUI |
alo doctor |
Checks environment health, Python version, and Git status |
alo version |
Displays the current installed version |
alo init |
Initializes a new workspace and generates profile files |
alo config |
Configures the LLM provider, model, and secure credential storage |
alo paths |
Generates personalized learning paths based on your profile |
alo roadmap |
Builds a detailed curriculum for your chosen path |
alo learn |
Starts a daily learning and practice session |
alo review |
Initiates a review session focused on past weaknesses |
alo sync |
Safely commits changes to Markdown state files and pushes to remote |
alo readme |
Generates a workspace README.md portfolio (options: --include-charts --include-gamification) |
alo charts |
Generates local SVG progress charts in assets/ |
alo badges |
Displays local gamification summary and earned badges |
alo status |
Summarizes the current workspace state and momentum |
Mock mode is useful for trying the workflow without an API key.
alo paths --mock
alo roadmap --mock
alo learn --mock
alo review --mockSee v1.1.0 planning for the next milestone.
- Now: workspace README generator, learning stats, progress charts, streaks
- Later: roadmap import, examples gallery, richer dashboard UX
(Note: roadmap.sh-compatible import is future research, not current functionality.)
- Python 3.12+ only
- LLM features require a configured provider unless mock mode is used
- Screenshots/GIF are not added yet
- Direct roadmap.sh integration is not implemented yet
Please refer to SECURITY.md for vulnerability reporting instructions.
Do not paste API keys into issues. ALO is designed to avoid storing raw keys in project files.
Bug reports, docs fixes, UX feedback, and roadmap ideas are welcome.
This project is licensed under the MIT License.
Where ALO stores config: Configuration is stored securely using your operating system's standard user configuration directory (e.g., ~/.config/ALO/ALO/config.json on Linux, AppData\Local\ALO\ALO\config.json on Windows).
How to change provider/base URL: Run �lo config to update your provider, model, base URL, and key storage preferences. Alternatively, use the interactive dashboard by running �lo and navigating to Settings.
How to test API connection: You can test your connection in the TUI (interactive dashboard) by pressing T or selecting "Test API Connection" in the Settings menu.
What to do if settings look wrong: Your config is preserved safely. If a config file becomes invalid, ALO creates a timestamped backup and uses safe defaults. Open Settings in �lo and save again to repair. For partial configurations, ALO will explicitly list the missing required fields (like Base URL).
API Keys are not printed: ALO never prints or exposes raw API keys in logs, terminal outputs, or config menus. It will only indicate whether a key is configured correctly in the keyring or environment variables.