GoSpell
GoSpell is a terminal-based spelling practice application that uses text-to-speech to help users improve their spelling skills

Overview
GoSpell is an interactive CLI spelling practice tool that:
- Speaks words aloud using Google Cloud Text-to-Speech
- Provides word definitions to help with context
- Tracks your correct spelling streak
- Creates a satisfying practice environment with a clean TUI
I think it would be great for students, language learners, or anyone that wants to improve their spelling skills.
Features
- Text-to-Speech Integration: Hear words spoken (mostly) clearly with Google Cloud TTS
- Word Definitions: See word definitions to hopefully understand context and meaning
- Progress Tracking: Keep track of your spelling streak
- Pretty good TUI: Clean terminal user interface using Bubble Tea
- Word Caching: Caches dictionary lookups between sessions to increase speed over time
Installation
Prerequisites
- Go 1.17+
- Google Cloud Platform account with Text-to-Speech API enabled
- Google Cloud credentials JSON file (Make sure it is a key from a service account on Google Cloud)
Install from source
# Clone the repository
git clone https://github.com/jharlan-hash/gospell.git
cd gospell
# Install dependencies
go mod download
# Build the application
go build -o gospell
# Run the application
./gospell --credentials=/path/to/your-credentials.json
Usage
# Basic usage
./gospell --credentials=/path/to/your-credentials.json
# Display multiple definitions
./gospell --credentials=/path/to/your-credentials.json --definitions=3
Key Commands
- Enter: Submit your spelling
- Ctrl+R: Repeat the current word
- Ctrl+H: Hear what you've typed so far
- Ctrl+C/Ctrl+D/Esc: Exit the application
Configuration
GoSpell accepts the following command-line flags:
| Flag |
Short |
Description |
--credentials |
-c |
Path to Google Cloud credentials JSON file (required) |
--definitions |
-d |
Number of definitions to display (default: 1) |
--help |
-h |
Display help |
Dependencies
Contributing
Feel free to contribute if you want - this is just a personal project.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add some amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
Made with ❤️ by Jack Sovern