Skip to content

kolarski/s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–₯️ s

Terminal Sessions Made Ridiculously Simple

Install Now QuickStart Stars License Website

s is a minimalist wrapper around screen that makes terminal session management dead simple while keeping all the power of the original tool that you actually need.

πŸ”° New to terminal sessions? Click here to learn the basics first β†’

s in action - simple terminal session management

Meet s

s is a minimalist wrapper around screen that makes terminal session management dead simple while keeping all the power of the original tool that you actually need.

⏱️ Try It in 10 Seconds

# 1. Install
curl -fsSL https://raw.githubusercontent.com/kolarski/s/master/install.sh | bash

# 2. Check for existing sessions
s
No active screen sessions.
To create a new session, run: s <session-name>

# 3. Create a new session
s my-project
Creating new session 'my-project'...

# 4. Do some work, then detach when needed (standard screen command)
Ctrl+A, then D

# 5. List sessions (notice your session is now visible)
s
ID              NAME                           CREATED AT
-----------------------------------------------------------------
1372328         my-project                     21.03.2025 13:16:53

# 6. Reattach to your session
s my-project
Attaching to session 'my-project'...

# 7. When completely finished, kill the session
s kill my-project
Session 'my-project' terminated.

What to expect:

  • When you run s you'll see a clean table of all sessions
  • s my-project smartly attaches to existing sessions or confirms before creating new ones
  • Standard screen shortcuts work inside sessions

Why s Exists

The Linux screen utility is an incredibly powerful and versatile tool with a rich feature set developed over decades. While indispensable for server management and remote work, its depth comes with complexity that can impact everyday workflows:

  • Commands and flags that are challenging to remember when you just need to quickly manage sessions
  • Multi-step processes required for common tasks like reattaching to already-attached sessions
  • Feature-rich interface where many advanced capabilities are rarely used but add complexity
  • Session naming and management that can become unwieldy as you accumulate sessions
  • Command syntax that requires precise recall when you're focused on your actual work

s was created out of respect for screen's capabilities while acknowledging that developers often need a streamlined interface for their most common terminal session tasks. It preserves all the power of screen but provides a simplified command layer for day-to-day usage.

Core Commands You'll Use Daily

Task Command What it Does
List all sessions s Shows a clean, human-readable table
Create/attach to a session s name Creates if it doesn't exist, attaches if it does
Kill a session s kill name Removes the session

Why Developers Stick With s

  • One-Letter Simplicity: Just type s and you're productive
  • Zero Learning Curve: If you can type, you can use it
  • Smart Context Awareness: Creates or attaches based on what you need
  • Increased Productivity: Save ~5-10 seconds on every session interaction (adds up to hours saved!)
  • Designed for Real Workflows: Built by developers for actual day-to-day usage patterns

What Users Say

"I've been using screen for 10 years and switching to s has been a game-changer. So much simpler!"

"This tiny tool saves me at least 15 minutes of frustration every day."

"I installed this on our entire team's machines. Everyone loves it."

Terminal Sessions Explained

What are Terminal Sessions?

Terminal sessions (via tools like screen or tmux) let you:

  • Keep processes running even after you disconnect from SSH or close your terminal
  • Resume your work exactly where you left off
  • Run multiple terminal windows within a single connection
  • Share terminal sessions with teammates for collaboration

If you're using SSH to connect to servers or running long processes that you don't want to lose when your connection drops, terminal sessions are essential.

New to Terminal Sessions?

If you've never used terminal sessions before, here's what you can do once you're inside a session:

  • Run commands that continue even if you disconnect - Start long processes and they'll keep running after you close your terminal
  • Create multiple terminal windows (Ctrl+A, C) - Work in different contexts without opening new terminals
  • Switch between windows (Ctrl+A, 0-9) - Toggle between your windows like tabs
  • Disconnect and reconnect later exactly where you left off (Ctrl+A, D to detach)
  • Get help anytime - Press Ctrl+A, ? for the complete help menu

s makes all of this ridiculously simple by providing an intuitive interface to these powerful features.

Installation

βœ… Quick Install (Recommended)

curl -fsSL https://raw.githubusercontent.com/kolarski/s/master/install.sh | bash

The script intelligently:

  • Detects your OS
  • Downloads the appropriate binary
  • Installs to the correct location
  • Adds to your PATH if needed

Arch Linux (AUR)

If you're using Arch Linux or an Arch-based distribution, you can install s-screen from the AUR:

# Using yay
yay -S s-screen

# Using paru
paru -S s-screen

# Using pamac (Manjaro)
pamac install s-screen

Homebrew (macOS & Linux)

If you're using macOS or Linux with Homebrew installed, you can install s-screen using:

# Add the tap
brew tap kolarski/s-screen

# Install s-screen
brew install s-screen

Manual Binary Download

You can also download the pre-compiled binary directly from the GitHub releases page:

  1. Download the appropriate binary for your system (Linux or macOS)
  2. Make it executable: chmod +x s-linux-amd64 or chmod +x s-macos-amd64
  3. Move it to a directory in your PATH: mv s-linux-amd64 /usr/local/bin/s or mv s-macos-amd64 /usr/local/bin/s

From Source

git clone https://github.com/kolarski/s.git
cd s
cargo install --path .

Requirements

  • Linux screen command must be installed
  • Compatible with Linux and macOS

Under the Hood

s is built with modern software engineering practices that ensure reliability, maintainability, and performance:

  • πŸ“¦ Written in Rust: Delivering memory safety without a garbage collector, thread safety without data races, and abstraction without overhead
  • πŸ›οΈ Domain Driven Design: Focused on core domain logic and complex domain models to solve real developer problems
  • 🧱 Clean Architecture: Separation of concerns that makes the codebase modular, testable, and easy to maintain
  • πŸš€ Zero Dependencies: Completely self-contained with no external libraries, making it lightweight, fast, and secure

s is intentionally designed as a thin wrapper around the robust screen utility rather than reimplementing its functionality. This approach leverages the stability and feature set of screen while providing a dramatically simplified interface for everyday use.

For developers interested in contributing or building similar tools, our codebase serves as an excellent example of applying these principles to a focused utility.

Help Us Grow

If s has made your terminal life better:

  1. ⭐ Star the repo to help others discover it
  2. 🐦 Share on social with #TerminalProductivity and tag us
  3. πŸ‘©β€πŸ’» Introduce it at your next team meeting
  4. 🍴 Contribute features or fixes you'd like to see
  5. 🌐 Visit our website to learn more about the project

Contributing

We welcome all contributions! See our CONTRIBUTING.md guide to get started.

License

GNU General Public License v3.0 - See LICENSE for details.


Made with ❀️ by Alex Kolarski

About

πŸ–₯️ Terminal Sessions Made Ridiculously Simple

Resources

License

Stars

Watchers

Forks

Packages

No packages published