luxctl
CLI for projectlighthouse.io — learn by building real systems.

Install
Pre-built Binaries (Recommended)
Download the latest binary for your platform from the releases page:
Via Install Script
# one-liner (installs Rust if needed)
|
Via Cargo
# latest version
# specific version
Quick Start
# authenticate with your token from projectlighthouse.io
# verify setup
# see who you are
Usage
Projects
# list available projects
# list and open in browser
# show project details
# start a project (by slug or index from list)
# see progress on the current project
# change runtime or workspace
# stop working on the current project
# reset all progress and start fresh
Tasks
# list tasks for the current project
# force refresh from server
# show task details
# show full description
Running Validations
# run a single task
# run with verbose per-expectation output
# run against a specific project (overrides active project)
# validate all tasks at once
# validate all with verbose output
# validate across all started projects
Submitting Results
# submit answers for blueprint tasks that require user input
Hints
# list available hints for a task (may cost XP)
# reveal a specific hint
Terminal Challenges
Single-file DSA challenges (LRU Cache, Group Anagrams, etc.).
# list available terminal challenges
# start a terminal challenge
# run validation against your solution
# see active terminal info
# clear the active terminal
Helpers
# run project-specific data generators (e.g., 1 Billion Row Challenge)
Export
# parse a .bp file and print transpiled IR as JSON (offline, no auth needed)
Diagnostics
# check environment and diagnose issues
Development
Supported Runtimes
- Go - detects
go.mod, builds withgo build . - Rust - detects
Cargo.toml, builds withcargo check
Contributing
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run checks:
cargo fmt && cargo clippy && cargo test - Commit with a clear message
- Push and open a pull request
Guidelines
- Follow existing code style
- Add tests for new functionality
- Keep commits focused and atomic
- Update documentation as needed
Reporting Issues
- Check existing issues before creating a new one
- Include luxctl version (
luxctl --version) - Include OS and architecture
- Provide steps to reproduce
Release
Releases are automated via GitHub Actions. To create a new release:
- Update version in both
Cargo.tomlandsrc/lib.rs - Run
cargo buildto updateCargo.lock - Commit and push to master
- Wait for Auto Tag workflow to create the version tag
- Trigger the Release workflow:
The Release workflow will:
- Run tests
- Verify version matches tag
- Publish to crates.io
- Generate changelog
- Create GitHub release
License
AGPL-3.0 - See LICENSE for details.
This means you can use, modify, and distribute this software, but if you modify it and provide it as a service (even over a network), you must release your source code under the same license.