Metadata-Version: 2.4
Name: alo-learning-os
Version: 1.0.4
Summary: Agentic Learning OS - An interactive, AI-native framework for learning in the terminal.
Author-email: abolfaazl <abolfaazl@users.noreply.github.com>
License: MIT
Project-URL: Homepage, https://github.com/abolfaazl/alo
Project-URL: Repository, https://github.com/abolfaazl/alo
Project-URL: Issues, https://github.com/abolfaazl/alo/issues
Keywords: learning,os,llm,ai,terminal,education
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer>=0.12.3
Requires-Dist: textual>=0.74.1
Requires-Dist: pydantic>=2.8.2
Requires-Dist: openai>=1.37.1
Requires-Dist: rich>=13.7.1
Requires-Dist: gitpython>=3.1.43
Requires-Dist: keyring>=25.3.0
Requires-Dist: arabic-reshaper>=3.0.0
Requires-Dist: python-bidi>=0.4.2
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: license-file

# ALO

Requires Python 3.12+
 (Agentic Learning OS)

ALO is a globally installed CLI tool that allows you to initialize and manage independent learning workspaces for any subject. 

Whether you're learning English grammar, Java Spring Boot, or Product Management, ALO manages your learning state, roadmaps, weaknesses, and assessments dynamically via LLM-driven intelligence.

## Installation

Install globally using `pipx` or `uv` (recommended):

```bash
pipx install D:\ALO
# or
uv tool install D:\ALO
```

### Developer / Local Test Installation

If you are developing ALO, you can install it into a test virtual environment:

```powershell
# In PowerShell:
cd D:\ALO
python -m venv .venv-test
.\.venv-test\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e .
alo --help
alo doctor
```

## Quickstart

ALO separates the tool from your learning data. You should install ALO once, then create separate folders for each subject you want to learn.

**Important**: Do not run learning workspace `init` inside the ALO source repo.

### 1. Create a Learning Workspace

Create a new folder for your learning project and open it:

```powershell
mkdir D:\learn\English
cd D:\learn\English
alo
```

### 2. Initialize

From inside the interactive dashboard (or CLI), initialize the workspace state files:

*   **Command**: `init` (or `alo init`)

ALO will ask you a few questions about your background, experience level, and goals, and then create the necessary subject-agnostic Markdown state files (like `learning-profile.md` and `skill-map.md`).

### 3. Configure the LLM

To generate domain-specific assessments and roadmaps, you must configure ALO with an LLM provider:

*   **Command**: `config` (or `alo config`)

#### Safe API Key Guidance
*   **Recommended**: `keyring` mode. You will be prompted to paste your API key securely into a masked terminal prompt. It is stored securely in your OS credential manager.
*   **Alternative**: `env` mode. You can export an environment variable in your shell (e.g. `OPENAI_API_KEY`) and tell ALO to read from that variable name.
*   **Never** paste API keys directly into Markdown files.
*   **Never** commit API keys to Git.

**Example for OpenAI-compatible providers:**
```text
Provider: openai-compatible
Base URL: https://api.example.com/v1
Model: gpt-4o-mini
API key storage: keyring
```

### 4. Test LLM Connection

Once configured, verify the connection works:

*   **Command**: `Test LLM Connection` from the settings menu.

### 5. Learning Flow

Continue through the guided flow:

*   `paths` - Generate learning path options based on your profile and assessment.
*   `roadmap` - Generate or update the roadmap for the active path.
*   `learn` - Run a single daily learning session based on the current workspace roadmap.
*   `review` - Review past concepts and update your weaknesses profile.

### 6. Git Sync

ALO safely commits changes to your Markdown state files.

*   `sync --dry-run` - Preview which learning-state files would be committed without changing Git.
*   `sync --no-push` - Commit changes locally without pushing to a remote.
*   `sync` - Commit and push (if auto-push is enabled and a remote is configured).

*(Note: ALO only commits files specified in its internal safe-list. It will never commit unknown files or secrets.)*
