Skip to main content

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)

pip install trushell

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

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:

  1. Read CONTRIBUTING.md
  2. Check existing issues
  3. 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!

GitHub stars

Made for Linux users who value productivity and fun.

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

trushell-0.1.2.tar.gz (4.0 MB view details)

Uploaded Source

Built Distribution

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

trushell-0.1.2-py3-none-any.whl (4.0 MB view details)

Uploaded Python 3

File details

Details for the file trushell-0.1.2.tar.gz.

File metadata

  • Download URL: trushell-0.1.2.tar.gz
  • Upload date:
  • Size: 4.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for trushell-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f85a7e61152f75788be1b363b5f26ff91e13673a248b018d7121a078a352ba87
MD5 3f387b209e83722f6ad697af885f92cf
BLAKE2b-256 3739fb4c7e86217ab7f0a58a9ae832a75011cbe5e178cf34466164e0c3cd1ad5

See more details on using hashes here.

Provenance

The following attestation bundles were made for trushell-0.1.2.tar.gz:

Publisher: workflow.yml on AkshajSinghal/TruShell

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trushell-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: trushell-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for trushell-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b38869cff864d53b871026d1b3c77a093d13bc0b6ba76354eb83d02a29dad0da
MD5 a0b5803c9482d25d90a5235309bcbd8c
BLAKE2b-256 f3298e86cd95d1918eb8178b3c4480e956acfc6cee3030484984fd446e825bce

See more details on using hashes here.

Provenance

The following attestation bundles were made for trushell-0.1.2-py3-none-any.whl:

Publisher: workflow.yml on AkshajSinghal/TruShell

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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