Skip to content

Latest commit

 

History

History
269 lines (179 loc) · 4.38 KB

File metadata and controls

269 lines (179 loc) · 4.38 KB

Termy

████████╗███████╗██████╗ ███╗   ███╗██╗   ██╗
╚══██╔══╝██╔════╝██╔══██╗████╗ ████║╚██╗ ██╔╝
   ██║   █████╗  ██████╔╝██╔████╔██║ ╚████╔╝
   ██║   ██╔══╝  ██╔══██╗██║╚██╔╝██║  ╚██╔╝
   ██║   ███████╗██║  ██║██║ ╚═╝ ██║   ██║
   ╚═╝   ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝   ╚═╝

Modern Terminal Companion

Termy is a modern terminal companion for launching, tracking, and managing long-running commands from a single place.

It helps you turn repetitive terminal work into reusable aliases, start them in their own windows, and manage sessions with status, focus, stop, restart, and scheduling features.


Why I made Termy

I created Termy to make managing long-running terminal commands easier.

While developing, I often had multiple terminals open for servers, SSH sessions, and other processes. Managing them manually became repetitive, so I built Termy to save commands, launch sessions, track their status, and control them from one place.

The goal is to keep terminal workflows simple, organized, and efficient.


Features

  • Create reusable aliases for commands
  • Launch aliases in their own console windows
  • Track running sessions with PID and runtime state
  • View active sessions
  • Focus existing terminal windows
  • Stop individual sessions or all sessions
  • Restart stopped sessions
  • Schedule commands for later execution
  • Support optional stop time and working directory
  • Run commands directly without entering the interactive shell

Installation

Clone the repository:

git clone <repository-url>
cd Termy

Install:

pip install -e .

Or run directly:

python -m termy

Getting Started

Launch Termy:

termy

You will see:

Termy
Modern Terminal Companion

Type 'help' to begin.

termy>

Quick Start

1. Add an alias

termy add connect ssh myserver

2. Run it

termy run connect

Short form:

termy r connect

3. Check status

termy status

4. Focus a running session

termy focus connect

5. Stop a session

termy stop connect

Stop everything:

termy stop all

6. Schedule a command

termy schedule mytask 2026-07-25T20:30:00 "ping 8.8.8.8" 2026-07-25T20:45:00 C:\temp

7. Cancel scheduled jobs

termy cancel all

Command Reference

Core Commands

Command Description
add Save a command alias
remove Remove an alias
list Show saved aliases
status Show running sessions
logs Show stored logs
help Display available commands

Session Commands

Command Description
run / r Launch an alias in a new console window
stop / s Stop a session
stop all Stop all tracked sessions
restart / rs Restart a session
focus / f Bring a session window to the foreground

Scheduling Commands

Command Description
schedule Queue a command for later
cancel Cancel a scheduled job
cancel all Cancel all scheduled jobs

Format:

termy schedule <name> <start_time> <command> [stop_time] [working_dir]

Direct CLI Usage

You can also run commands without entering the interactive shell:

termy status
termy help
termy list
termy run connect

Example Workflow

termy add dev "python -m http.server 8000"

termy run dev

termy status

termy focus dev

termy stop dev

Notes

  • Scheduler uses ISO timestamps:
YYYY-MM-DDTHH:MM:SS

Example:

2026-07-25T20:30:00
  • On Windows, launched sessions open in separate console windows.
  • Runtime state is stored in:
~/.termy/
  • Termy automatically creates:
aliases.json
logs.txt

on first use.


Roadmap

  • Command aliases
  • Process tracking
  • Session management
  • Scheduling

Future:

  • Linux/macOS support
  • Better process monitoring
  • Web dashboard
  • Remote session management

License

MIT License