12 unstable releases (3 breaking)
| new 0.8.3 | Feb 22, 2026 |
|---|---|
| 0.8.2 | Feb 14, 2026 |
| 0.7.0 | Feb 9, 2026 |
| 0.6.2 | Jan 18, 2026 |
| 0.5.8 | Jan 18, 2026 |
#446 in Development tools
435KB
11K
SLoC
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)
curl -fsSL https://raw.githubusercontent.com/thearyanahmed/luxctl/master/install.sh | bash
Via Cargo
# latest version
cargo install luxctl
# specific version
cargo install luxctl --version 0.8.3
Quick Start
# authenticate with your token from projectlighthouse.io
luxctl auth --token $token
# verify setup
luxctl doctor
# see who you are
luxctl whoami
Usage
Projects
# list available projects
luxctl project list
# list and open in browser
luxctl project list --web
# show project details
luxctl project show --slug tcp-echo-server
# start a project (by slug or index from list)
luxctl project start --id tcp-echo-server --runtime go
luxctl project start --id 0 --workspace ~/labs
# see progress on the current project
luxctl project status
# change runtime or workspace
luxctl project set --runtime rust
luxctl project set --workspace ~/labs/redis
# stop working on the current project
luxctl project stop
# reset all progress and start fresh
luxctl project restart
Tasks
# list tasks for the current project
luxctl task list
# force refresh from server
luxctl task list --refresh
# show task details
luxctl task show --task 1
# show full description
luxctl task show --task 1 --detailed
Running Validations
# run a single task
luxctl run --task 1
# run with verbose per-expectation output
luxctl run --task 1 --detailed
# run against a specific project (overrides active project)
luxctl run --task 1 --project tcp-echo-server
# validate all tasks at once
luxctl validate
# validate all with verbose output
luxctl validate --detailed
# validate across all started projects
luxctl validate --all
Submitting Results
# submit answers for blueprint tasks that require user input
luxctl result --task 1 --input key=value --input another=value
Hints
# list available hints for a task (may cost XP)
luxctl hint list --task 1
# reveal a specific hint
luxctl hint unlock --task 1 --hint $hint_uuid
Terminal Challenges
Single-file DSA challenges (LRU Cache, Group Anagrams, etc.).
# list available terminal challenges
luxctl terminal list
# start a terminal challenge
luxctl terminal start --slug lru-cache --workspace ~/challenges
# run validation against your solution
luxctl terminal run
luxctl terminal run --detailed
# see active terminal info
luxctl terminal status
# clear the active terminal
luxctl terminal stop
Helpers
# run project-specific data generators (e.g., 1 Billion Row Challenge)
luxctl helper 1brc --rows 1000000 --measurements data/measurements.txt --expected expected/output.txt
Export
# parse a .bp file and print transpiled IR as JSON (offline, no auth needed)
luxctl export spec.bp
luxctl export spec.bp --format json
Diagnostics
# check environment and diagnose issues
luxctl doctor
Development
cargo build # debug build
cargo test # run tests
cargo fmt # format
cargo clippy # lint
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:
gh workflow run Release --field tag=v0.8.3
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.
Dependencies
~22–42MB
~621K SLoC