Skip to main content

🐄 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.

Metadata

Release files for trushell 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trushell 0.1.2
File Size Uploaded
trushell-0.1.2.tar.gz 4.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for trushell 0.1.2
File Interpreter ABI Platform
trushell-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 8.0 MB

Release files / trushell-0.1.2.tar.gz

Download URL trushell-0.1.2.tar.gz
Size 4.0 MB
Tags Source
SHA-256 checksum
How to use checksums
f85a7e61152f75788be1b363b5f26ff91e13673a248b018d7121a078a352ba87
BLAKE2b-256 checksum
How to use checksums
3739fb4c7e86217ab7f0a58a9ae832a75011cbe5e178cf34466164e0c3cd1ad5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 30, 2026.

Transparency log

Release files / trushell-0.1.2-py3-none-any.whl

Download URL trushell-0.1.2-py3-none-any.whl
Size 4.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b38869cff864d53b871026d1b3c77a093d13bc0b6ba76354eb83d02a29dad0da
BLAKE2b-256 checksum
How to use checksums
f3298e86cd95d1918eb8178b3c4480e956acfc6cee3030484984fd446e825bce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page