gleeam_code
A Gleam CLI tool for solving LeetCode problems. Write solutions in Gleam, compile to Erlang, and submit to LeetCode.
- Gleam standard library auto-bundled into submissions
- TreeNode / ListNode problems supported with automatic record conversion
- Problem tracking with difficulty and status filters
Installation
Nix (recommended)
nix profile install github:KIrie-0217/gleeam_code
Or add to your flake.nix:
inputs.gleeam_code.url = "github:KIrie-0217/gleeam_code";
# then: gleeam_code.packages.${system}.default
From source
Requires Gleam >= 1.0 and Erlang/OTP >= 26.
git clone --recurse-submodules https://github.com/KIrie-0217/gleeam_code.git
cd gleeam_code
gleam run -m gleescript # produces ./gleeam_code
mv gleeam_code ~/.local/bin/glc
GitHub Releases
Download the glc escript from Releases. Requires Erlang/OTP on the host.
Quick Start
glc init # Initialize project (run once)
glc auth # Save your LeetCode session cookie
glc fetch two-sum # Fetch problem and generate files
# ... implement src/solutions/p0001_two_sum/solution.gleam ...
glc test two-sum # Run local tests
glc submit two-sum # Submit to LeetCode
Commands
| Command | Description |
|---|---|
glc init | Initialize project directories and type definitions |
glc auth | Prompt and save LeetCode session cookie to ~/.gleeam/session |
glc fetch <slug-or-number> | Fetch problem from LeetCode, generate solution stub and tests |
glc test <slug-or-number> | Run EUnit on the problem’s test module |
glc submit <slug-or-number> | Build, bundle stdlib, convert to Erlang, submit |
glc list [options] | List fetched problems with status |
glc --version | Show version |
glc list filters
glc list --easy --unsolved # Easy problems not yet Accepted
glc list --medium --hard # Medium and Hard problems
glc list --solved # All Accepted problems
Global options
glc -C /path/to/project fetch two-sum # Run in a different directory
Authentication
Session cookie is resolved in this order:
~/.gleeam/session(saved byglc auth)LEETCODE_SESSIONenvironment variable (fallback)
Free problems can be fetched without authentication.
Development
gleam run -- fetch two-sum # Run from source without escript
gleam test # Run all unit tests
gleam build # Build the project
gleam run -m gleescript # Build standalone escript
nix build # Build via Nix
Contributing
This project includes a Gleam LLM Wiki as a submodule
for AI-assisted development. If contributing with an LLM agent, initialize
the submodule and point your agent at docs/gleam-wiki/AGENTS.md for
Gleam language reference.
git submodule update --init
License
MIT