Skip to main content

A powerful, terminal-based vocabulary builder and daily study tool.

Project description

Word-Stack

A powerful, terminal-based vocabulary builder and daily study tool. Add words from your command line, automatically fetch their definitions and pronunciations, and build a daily study habit without ever leaving your terminal.

Features

  • Lightning Fast: Built with modern Python and uv.
  • Zero-Friction Adding: Just type word-stack add <word>. The Dictionary API automatically fetches definitions, examples, and phonetics.
  • Bulk Import: Quickly add multiple words at once with beautiful progress tracking.
  • Smart Typo Recovery: Automatically suggests the correct command if you make a typing mistake.
  • Daily Study Mode: Uses a built-in SQLite database to track your learning and serves you a daily quiz of unstudied words.
  • Beautiful UI: Terminal output is fully styled with rich for gorgeous tables, panels, and loading animations.

Prerequisites

Before installing, make sure you have the uv package manager installed on your system.

Installation

Word-Stack is officially published on PyPI. You can install it globally in seconds:

uv tool install word-stack

(Note: You can also use pip install word-stack, but uv is recommended for isolated installations).

Setting up your Alias

To make the tool lightning fast to use, set up a permanent alias in your shell configuration (like ~/.zshrc or ~/.bashrc):

alias ws="word-stack"

Updating your Installation

When a new version is released, simply run:

uv tool upgrade word-stack

Usage

Check your installed version:

ws --version

Add a word (Auto-fetches definition):

ws add "persevere"
ws add "equilibrium" "denge"

Add multiple words at once:

ws bulk "apple" "banana" "ephemeral"

List your latest saved words:

ws list
ws list --limit 20

View word details:

ws show "persevere"

Start your daily study session:

ws study

Delete a word:

ws delete "persevere"

Development Setup

Word-Stack uses uv for lightning-fast development. You do not need to manually create virtual environments or run pip install. uv handles everything for you automatically.

If you want to contribute or test features without altering your personal vocabulary database, set up an isolated development environment:

1. Clone the repository and set up your environment variables:

git clone https://github.com/kemalbsoylu/word-stack.git
cd word-stack
cp .env.example .env

2. Set up a temporary development alias in your terminal:

alias dev="uv run --env-file .env -m word_stack.main"

Now you can run commands like dev list or dev bulk test. The application will detect the development environment and safely route all data to a local .dev_data/words.db file instead of your global database!

Running Tests

To run the test suite, simply use:

uv run pytest

🎓 For Python Beginners

Are you learning Python and want to see exactly how this tool was built?

This repository is the production version of the tool. If you want to see a step-by-step, 3-phase educational history of how to build a CLI app from scratch, please visit the Word-Stack-CLI Educational Repository. It is designed specifically for beginners to explore and submit their first Open Source contributions!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

word_stack-0.3.0.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

word_stack-0.3.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file word_stack-0.3.0.tar.gz.

File metadata

  • Download URL: word_stack-0.3.0.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for word_stack-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ec66e1d1ea151fa5ddd7390394ce2628842c5ade7df383771cd9a8eef3cd2eb3
MD5 806924039c610ce1c219bd7f347daf5f
BLAKE2b-256 dbbabd9f061ec512fbaa19c9785dd40af425af9aac62a261461f9827481a7152

See more details on using hashes here.

File details

Details for the file word_stack-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: word_stack-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for word_stack-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87c2bae5a6edf934b2691297d98c1bb5465dc053aba00b146355a7948dbcaaf1
MD5 d6762e1ac7f3438baae87046c5203548
BLAKE2b-256 135aaf04ecaf13e06576f242f3d43e2532e14e0acefc6f77d1af23cb7c2fe979

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page