Skip to main content

AI-powered CLI tool for interactive, personalized learning experiences

Project description

SkillForge Logo

AI-powered interactive learning CLI for developers

Python 3.12+ Tests Coverage License: MIT

FeaturesInstallationUsageArchitectureContributing


SkillForge helps developers learn new frameworks, tools, and technologies through hands-on practice in safe, simulated environments. Get personalized courses, step-by-step guidance, and real-time feedback—all from your terminal.

SkillForge Demo

Status

🚧 Active Development — Interactive learning sessions now available!

Features

AI-Powered Course Generation — Uses Claude or GPT to create personalized curricula with intelligent caching

Safe Command Simulation — Practice shell, Python, git, Docker, and kubectl without risk to your system

Intelligent Validation — Pattern matching + LLM evaluation with progressive hints and feedback

Progress Persistence — Save and resume sessions at any time

Rich Terminal UI — Beautiful course overviews, progress indicators, and formatted output

Intelligent Feedback

SkillForge provides helpful feedback whether you get it right or need another try:

Validation Examples

Installation

Install from PyPI

pip install skillforge-cli
# or
pipx install skillforge-cli

Then set up your API key and start learning:

export ANTHROPIC_API_KEY=sk-ant-...
skillforge learn "python basics"

Development Setup

Requirements: Python 3.12 or higher

  1. Clone the repository

    git clone https://github.com/milank94/skillforge.git
    cd skillforge
    
  2. Create a virtual environment

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install in editable mode

    pip install --upgrade pip
    pip install -e ".[dev]"
    
  4. Set up API key

    export ANTHROPIC_API_KEY=sk-ant-...
    # or
    export OPENAI_API_KEY=sk-...
    
  5. Verify installation

    skillforge --version
    skillforge --help
    

Usage

Generate a Course

# Start a learning session (uses Anthropic by default)
skillforge learn "pytorch basics"

# Specify difficulty and lesson count
skillforge learn "docker fundamentals" --difficulty intermediate --lessons 7

# Use OpenAI instead
skillforge learn "kubernetes" --provider openai

# Non-interactive mode (just display the course)
skillforge learn "git basics" --no-interactive
📸 Example: Generated PyTorch Course

Generated Course Example

Resume & Progress

# List saved sessions
skillforge resume

# Resume a specific session (supports partial IDs)
skillforge resume abc123

# View progress without resuming
skillforge status abc123
📸 Example: Resume Menu

Resume Menu

Cache Management

# View cache info
skillforge cache-info

# Clear cached courses
skillforge cache-clear

Configuration

Environment Variables

ANTHROPIC_API_KEY=sk-ant-...       # Anthropic API key
OPENAI_API_KEY=sk-...              # OpenAI API key
SKILLFORGE_LLM_PROVIDER=anthropic  # Default provider (anthropic or openai)
SKILLFORGE_MODEL=claude-sonnet-4-5-20250929  # Model to use
SKILLFORGE_TEMPERATURE=0.7         # Generation temperature
SKILLFORGE_DATA_DIR=~/.skillforge  # Data directory

Development

Running Tests

# Run all tests
pytest

# Run with verbose output
pytest -v

# Run specific test file
pytest tests/test_simulator.py

# Run integration tests (requires API keys)
pytest -m integration

Code Quality

# Format code
black skillforge/ tests/

# Lint code
ruff check skillforge/ tests/

# Type checking
mypy skillforge/

Architecture

┌─────────────────────────────────────────────┐
│              CLI Interface                   │
│           (typer + rich)                     │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────┴──────────────────────────┐
│           Course Generator                   │
│     (LLM-powered, hash-based caching)       │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────┴──────────────────────────┐
│          Command Simulator                   │
│  (pattern matching + LLM fallback)          │
│  Virtual file system, shell, Python,        │
│  git, docker, kubectl simulation            │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────┴──────────────────────────┐
│          Exercise Validator                  │
│  (pattern matching + LLM evaluation)        │
│  Progressive hints, score feedback          │
└─────────────────────────────────────────────┘

Roadmap

  • Phase 1: Basic package setup and CLI structure
  • Phase 2: Data models (Course, Lesson, Exercise, Progress)
  • Phase 3: LLM integration (course generator, simulator, validator)
  • Phase 4: Interactive learning sessions and progress tracking

Project Structure

skillforge/
├── skillforge/              # Main package
│   ├── __init__.py          # Package initialization
│   ├── cli.py               # CLI interface (typer + rich)
│   ├── core/                # Core functionality
│   │   ├── course_generator.py  # LLM-based course creation
│   │   ├── session.py           # Interactive session manager
│   │   ├── simulator.py         # Command simulation engine
│   │   └── validator.py         # Exercise validation engine
│   ├── models/              # Pydantic data models
│   │   ├── course.py            # Course, Lesson, Exercise
│   │   ├── config.py            # AppConfig, LLMConfig
│   │   ├── enums.py             # Difficulty, LLMProvider, etc.
│   │   ├── progress.py          # Progress tracking
│   │   └── session.py           # Learning session
│   └── utils/               # Utilities
│       ├── llm_client.py        # Anthropic + OpenAI clients
│       ├── output.py            # Rich display helpers
│       └── serialization.py     # JSON serialization
├── tests/                   # 354 tests, 93% coverage
├── pyproject.toml           # Project configuration
├── README.md                # This file
└── CLAUDE.md                # Development guide

Contributing

This is currently a learning project. Contributions and suggestions are welcome!

License

MIT License - see LICENSE file for details

Learn More

For detailed architecture and development guidelines, see CLAUDE.md.

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

skillforge_cli-0.1.1.tar.gz (63.2 kB view details)

Uploaded Source

Built Distribution

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

skillforge_cli-0.1.1-py3-none-any.whl (40.5 kB view details)

Uploaded Python 3

File details

Details for the file skillforge_cli-0.1.1.tar.gz.

File metadata

  • Download URL: skillforge_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 63.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for skillforge_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d3996a1b2577a05fa891976a4cfb926b339bec7449c5ecf1491a3c6ba8c04632
MD5 179bacdc2eb07f6865f4ef29e7f7fdc1
BLAKE2b-256 71aebaef2d6e33a58374266a963b3e5e7cfaf9c4acf725d22c18739999bcb37f

See more details on using hashes here.

File details

Details for the file skillforge_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: skillforge_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 40.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for skillforge_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 adef4a83c313630646c9dd0cee42833651fdd12c504e9004321834444a8b181d
MD5 4d32ef833895e68d6818c30efca37d48
BLAKE2b-256 2136cb1c2e082868f7c7335fe49e74d2135f5d5b2a29d0dd63af2b61a1788afa

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