Snark Express TUI
Terminal UI for Snark Express — browse cryptography papers from the command line.
Black & orange themed, vim-style navigation, post-quantum authentication.
Install
pip install snarkexpress-tui
snarkexpress
Or run directly without installing:
uvx --from snarkexpress-tui snarkexpress
Node.js 18+ is optional, only needed for post-quantum crypto (login/register):
npm install -g @noble/post-quantum
From Source
git clone https://github.com/kurtpan666/SnarkExpress-TUI.git
cd SnarkExpress-TUI
./start.sh
start.sh checks the environment, installs all dependencies, and launches the TUI.
Configuration
The TUI connects to https://snarkexpress.up.railway.app/api by default. Override with:
SNARKEXPRESS_API_URL=https://your-api.example.com/api snarkexpress
Keyboard Shortcuts
Global
| Key | Action |
|---|---|
q |
Quit |
h / l |
Prev / Next tab |
← / → |
Prev / Next tab |
Escape / Backspace |
Go back |
Paper List (Home)
| Key | Action |
|---|---|
j / k |
Move down / up |
g / G |
Jump to top / bottom |
Enter |
Open paper detail |
o |
Open paper URL in browser |
u / d |
Upvote / Downvote |
r |
Refresh |
Search
| Key | Action |
|---|---|
n / p |
Next / Prev page |
Enter |
Submit search |
Paper Detail
| Key | Action |
|---|---|
u |
Upvote |
o |
Open URL in browser |
r |
Refresh |
Features
- Browse papers with Hot / New / Top sorting and infinite scroll
- Search with quick and advanced filters (title, author, tag, sort by relevance/date/votes)
- Paper details with abstract, BibTeX, voting, comments, related papers
- Submit papers with URL auto-extraction (ePrint, arXiv, CiC, DOI)
- Comments — nested threads with reply/delete
- Vote on papers (upvote / downvote with toggle)
- User profiles with submissions, comments, votes, and badges
- Tags — clickable tag cloud sorted by popularity, wrapping to fill terminal width
- PQ Auth — ML-DSA + ML-KEM challenge-response login
- Key management — import/export encrypted key bundles with PIN encryption
Architecture
Standalone API client for the Snark Express backend. All communication happens via REST API. Post-quantum cryptography (ML-DSA-65 + ML-KEM-768) is handled by a bundled Node.js helper (crypto_helper.mjs) using @noble/post-quantum.
Metadata
Release files for snarkexpress-tui 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| snarkexpress_tui-0.1.2.tar.gz | 26.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| snarkexpress_tui-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 65.1 kB
Release files / snarkexpress_tui-0.1.2.tar.gz
| Download URL | snarkexpress_tui-0.1.2.tar.gz |
|---|---|
| Size | 26.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0ede4eec863b898e4c8f57bd1262db5c801bea3363765a15a4db3158a4ffebc3
|
|
BLAKE2b-256 checksum How to use checksums |
88c99710e6a762b7e05934dbc000b51a7be9c16390ebfdb0b53329a8d5c37707
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / snarkexpress_tui-0.1.2-py3-none-any.whl
| Download URL | snarkexpress_tui-0.1.2-py3-none-any.whl |
|---|---|
| Size | 38.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f2fec91adc9ef15c94719ca8a94bb49ae1f94e076d94e692b547c53e0d75b60
|
|
BLAKE2b-256 checksum How to use checksums |
75f0fbcc21c1d2bdf97f47076a371c11be8ab829fda79b10a507165cb3e1b0f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|