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)

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

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.0.tar.gz (390.4 kB 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.0-py3-none-any.whl (395.4 kB view details)

Uploaded Python 3

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

Hashes for trushell-0.1.0.tar.gz
Algorithm Hash digest
SHA256 245cee92093c9b60a0716008287467acaf85dabd0cdb6345e9365bb69c0d15ac
MD5 8dcf764ff8db1373b6a2bcf904004643
BLAKE2b-256 f5a7eeced59e885e539b4e7d0e848a124fa548ee57e44e34d1d5bd787e853bfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for trushell-0.1.0.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.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

Hashes for trushell-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1d68f34c09386487f9884d9da6223ba326697edc398c9b6b74a197660f93f94
MD5 88a53f524a0a6aff03c6f00da7a3e8db
BLAKE2b-256 cfb0b5f9b508c01ad704dc85cca6d3838e0e0de0a1122f3362d28b7625940cd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for trushell-0.1.0-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