Algoflex
Sharpen your algorithm skills — right from the terminal.
Algoflex is a lightweight, offline-first terminal application for practicing algorithms and data structures. It provides a curated collection of coding problems, fast local feedback, and persistent progress tracking — without requiring an account, server, or browser.
Why Algoflex?
Algoflex is designed around a simple idea: algorithm practice should be fast, focused, and available anywhere a terminal is available.
Features
- Offline-first — Practice without relying on an internet connection or remote services.
- Cross-platform — Runs on Linux, macOS, and Windows.
- Keyboard-driven TUI — Navigate and solve problems efficiently from the terminal. Mouse input is also supported.
- Curated problem set — A focused collection of algorithm and data-structure problems designed to strengthen fundamental problem-solving skills.
- Multiple languages — Solve problems using Python, Rust or SQL.
- Automated testing — Run problem-specific tests against your solution and receive immediate feedback.
- Progress tracking — Track solve times, recent activity, historical attempts, and areas for improvement.
- Local persistence — Problem attempts, drafts and language preferences are stored locally.
Problem set
The curated problem set covers fundamental algorithms and data structures, and SQL fundamentals. These include:
- Arrays & Strings
- Stacks & Queues
- Linked Lists
- Trees & Binary Search Trees
- Heaps & Priority Queues
- Graphs
- Hashing
- Greedy Algorithms
- Dynamic Programming
- Backtracking
- Recursion
- Bit Manipulation
- SQL Queries, CTEs, partition windows & window functions.
Problems are curated to reinforce core concepts and develop reusable problem-solving patterns across increasing levels of difficulty. Their order is randomized on each startup, encouraging independent problem-solving.
Installation
Algoflex requires Python 3.12 or later and runs on Linux, macOS, and Windows.
Rust solutions additionally require Rust 1.97 or later.
SQL solutions use Python's SQLite3.
Using uv
Install Algoflex as a standalone tool with uv:
uv tool install algoflex
Using pip
Alternatively:
pip install algoflex
Getting Started
Launch Algoflex from your terminal:
algoflex
Choose a problem, write your solution, run the tests, and review your results.
Supported Languages
- Python 3.12+
- Rust 1.97+
- SQL using Python's SQlite3
Screenshots
Attempt
Search
Dashboard
Development
Algoflex uses uv for project and dependency management, with pytest for testing, Ruff for linting and formatting, pre-commit hooks for local checks, and GitHub Actions for continuous integration, build validation, and tagged releases.
Clone the repository:
git clone https://github.com/ndero/algoflex.git
cd algoflex
Set up the development environment and install Git hooks:
make setup
Run the test suite:
make test
Run linting:
make lint
Check formatting:
make format-check
Build the package:
make build
Build and run the local application:
make run
Run the full project checks:
make check
License
Algoflex is licensed under the MIT License.
See the LICENSE file for the full license text.
Metadata
Release files for algoflex 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| algoflex-1.2.0.tar.gz | 162.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| algoflex-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 461.0 kB
Release files / algoflex-1.2.0.tar.gz
| Download URL | algoflex-1.2.0.tar.gz |
|---|---|
| Size | 162.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59003cf9cd457a911fbfebcd1592494c1ca29c95c659dd79cc244bfc6094026e
|
|
BLAKE2b-256 checksum How to use checksums |
7465c790c8bd9920c8e8d03f0cbbeda99753fc81b940a1d159f152437df4d8cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / algoflex-1.2.0-py3-none-any.whl
| Download URL | algoflex-1.2.0-py3-none-any.whl |
|---|---|
| Size | 298.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d423ad0546b47fb91eb55be1e20b33fc1307ba4a3578a5644131ee47e51d737
|
|
BLAKE2b-256 checksum How to use checksums |
8f27834800930d9e40c291dc579dee6806c7fb12b0b73b162e5b2f9097d91f5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|