gleeam_code

A Gleam CLI tool for solving LeetCode problems. Write solutions in Gleam, compile to Erlang, and submit to LeetCode.

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:

  1. ~/.gleeam/session (saved by glc auth)
  2. LEETCODE_SESSION environment 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