A polished productivity CLI shell with jokes, todos, and ChronoTerm features.
Project description
๐ง TruShell
A modern, Linux-native productivity shell that integrates seamlessly with your workflow
TruShell is not just another terminalโit's a productivity powerhouse that combines task management, time utilities, jokes for breaks, and a native shell experience. Built for developers who want to stay in flow without switching contexts.
Why TruShell?
- All-in-one workspace - Tasks, time, alarms, and shell in one place
- Beautiful prompts - Customizable
trushell โฏprompt with ASCII art - Linux-first design - Respects Unix philosophy, works alongside bash/zsh/fish
- Persistent state - SQLite-backed todos and settings survive restarts
- Fun breaks - Cow/T-Rex jokes with sound effects when you need a laugh
- Global awareness - World clocks, timezone manager, alarms, stopwatch
- Built-in editor - Quick file editing without leaving the shell
Installation
Using pip (Recommended)
Note: coming soon
Using uv (Faster)
Note: coming soon
From Source
git clone https://github.com/AkshajSinghal/trushell.git
cd at-office-shell
pip install -e .
Quick Start
$ trushell
Entering TruShell. Type 'exit' to quit.
trushell โฏ help
Available commands: joke, joke_trex, addtask, deletetask, updatetask, completetask, showtask, now, time, world, tz, alarm, sw, settings, exit, help
trushell โฏ addtask "Review PR" "Work"
Task added.
trushell โฏ showtasks
Todos ๐ป
โโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโ
# โ Todo โ Category โ Done โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ 1 โ Review PR โ Work โ โ โ
โโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโ
trushell โฏ time
__
/ _)
/_)_
/_)
trushell โฏ joke
_________________________
< Your Python code works! >
-------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
trushell โฏ ls -la # Native OS commands work too!
total 48
drwxr-xr-x 5 user user 4096 May 29 10:30 .
...
Command Reference
Fun & Breaks
| Command | Description | Example |
|---|---|---|
joke |
Random joke with ASCII cow | joke |
joke-trex |
T-Rex joke with sound | joke-trex |
Task Management
| Command | Description | Example |
|---|---|---|
addtask "<task>" "<category>" |
Add a new todo | addtask "Fix bug" "Dev" |
deletetask <position> |
Delete task by number | deletetask 2 |
updatetask <pos> "<task>" "<cat>" |
Update task text/category | updatetask 1 "New text" "Cat" |
completetask <position> |
Mark task as done | completetask 1 |
showtasks |
Display all tasks | showtasks |
Time & Productivity
| Command | Description | Example |
|---|---|---|
now |
Current local time | now |
time |
ASCII clock display | time |
world |
Show favorite timezones | world |
tz list |
List saved timezones | tz list |
tz add <IANA> |
Add timezone | tz add Europe/London |
tz remove <name> |
Remove timezone | tz remove London |
alarm list |
List alarms | alarm list |
alarm add "<HH:MM>" --label "X" |
Set alarm | alarm add "07:30" --label "Morning" |
sw start |
Start stopwatch | sw start |
sw pause |
Pause stopwatch | sw pause |
sw lap |
Record lap time | sw lap |
sw reset |
Reset stopwatch | sw reset |
sw show |
Show current time | sw show |
Configuration
| Command | Description | Example |
|---|---|---|
settings |
Interactive settings UI | settings |
edit <file> |
Edit file in built-in editor | edit config.txt |
Shell Features
| Command | Description | Example |
|---|---|---|
cd <dir> |
Change directory (native) | cd ~/projects |
| Any OS command | Falls back to system shell | ls, git status, etc. |
help |
Show available commands | help |
exit or quit |
Exit TruShell | exit |
Customization
Configure your experience with the settings command:
trushell โฏ settings
Adjust:
- Clock style - Choose ASCII art format
- Time template - Customize time display format
- Joke character - Switch between cow, trex, dragon, etc.
- Sound effects - Enable/disable joke sounds
Settings are stored persistently in your user data directory.
Architecture
TruShell is built with a modular architecture:
trushell/
โโโ cli.py # CLI entrypoint & command routing
โโโ project.py # Interactive shell REPL loop
โโโ todocli.py # Todo management commands
โโโ pyfunny.py # Jokes & ASCII art
โโโ settings.py # Persistent configuration
โโโ database.py # SQLite storage layer
โโโ chronoterm/ # Time utilities
โโโ shell.py # ChronoTerm command handler
โโโ state.py # State management
โโโ sounds/ # Sound effect files
Key Design Principles:
- SQLite-backed storage - Todos and settings persist across sessions
- Platform-safe paths - Uses OS-specific app data directories
- Native fallback - Unrecognized commands pass through to system shell
- Textual UI - Modern terminal UI framework for settings & editor
TruShell vs Traditional Shells
| Feature | Bash/Zsh/Fish | TruShell |
|---|---|---|
| Task Management | External tools needed | Built-in |
| Time Utilities | Manual setup | World clocks, alarms, stopwatch |
| Productivity Focus | General purpose | Optimized for workflow |
| Fun Breaks | None | Jokes with ASCII art |
| Learning Curve | Moderate-High | Low (familiar commands) |
| Extensibility | Plugins/scripts | Python-based |
TruShell complements your existing shellโuse it for productivity tasks while keeping bash/zsh for system administration.
๏ธ Development
Prerequisites
- Python 3.10+
- Poetry or pip
Setup
git clone https://github.com/AkshajSinghal/trushell.git
cd at-office-shell
poetry install
# or
pip install -e .
Run Tests
pytest tests/
Build Package
python -m build
twine upload dist/*
Contributing
Contributions are welcome! Please:
- Read CONTRIBUTING.md
- Check existing issues
- Fork and create a pull request
See CODE_OF_CONDUCT.md for community guidelines.
Dependencies
- Typer - Modern CLI framework
- Textual - Terminal UI toolkit
- pyjokes - Joke library
- cowsay - ASCII art
- playsound - Audio playback
- SQLite3 - Built-in database (no extra install needed)
License
Apache 2.0 - See LICENSE for details.
Acknowledgments
- Inspired by the Unix philosophy of small, composable tools
- Built with love for the Linux community
- Thanks to all contributors and early testers
๐ Star this repo if TruShell boosts your productivity!
Made for Linux users who value productivity and fun.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trushell-0.1.0.tar.gz.
File metadata
- Download URL: trushell-0.1.0.tar.gz
- Upload date:
- Size: 390.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
245cee92093c9b60a0716008287467acaf85dabd0cdb6345e9365bb69c0d15ac
|
|
| MD5 |
8dcf764ff8db1373b6a2bcf904004643
|
|
| BLAKE2b-256 |
f5a7eeced59e885e539b4e7d0e848a124fa548ee57e44e34d1d5bd787e853bfd
|
Provenance
The following attestation bundles were made for trushell-0.1.0.tar.gz:
Publisher:
workflow.yml on AkshajSinghal/TruShell
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trushell-0.1.0.tar.gz -
Subject digest:
245cee92093c9b60a0716008287467acaf85dabd0cdb6345e9365bb69c0d15ac - Sigstore transparency entry: 1674969651
- Sigstore integration time:
-
Permalink:
AkshajSinghal/TruShell@4e4c8997009e9dca48681147ccafa9b53392357f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AkshajSinghal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@4e4c8997009e9dca48681147ccafa9b53392357f -
Trigger Event:
release
-
Statement type:
File details
Details for the file trushell-0.1.0-py3-none-any.whl.
File metadata
- Download URL: trushell-0.1.0-py3-none-any.whl
- Upload date:
- Size: 395.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1d68f34c09386487f9884d9da6223ba326697edc398c9b6b74a197660f93f94
|
|
| MD5 |
88a53f524a0a6aff03c6f00da7a3e8db
|
|
| BLAKE2b-256 |
cfb0b5f9b508c01ad704dc85cca6d3838e0e0de0a1122f3362d28b7625940cd6
|
Provenance
The following attestation bundles were made for trushell-0.1.0-py3-none-any.whl:
Publisher:
workflow.yml on AkshajSinghal/TruShell
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trushell-0.1.0-py3-none-any.whl -
Subject digest:
a1d68f34c09386487f9884d9da6223ba326697edc398c9b6b74a197660f93f94 - Sigstore transparency entry: 1674969673
- Sigstore integration time:
-
Permalink:
AkshajSinghal/TruShell@4e4c8997009e9dca48681147ccafa9b53392357f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AkshajSinghal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@4e4c8997009e9dca48681147ccafa9b53392357f -
Trigger Event:
release
-
Statement type: