console-session

Abstract Telnet, TCP, and local console I/O behind a unified Session interface.

2|Updated Sep 15, 2023
One-click install
npx skills add https://github.com/open-watt/openwatt --skill console-session
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: console-session
Source: https://github.com/open-watt/openwatt/tree/main/.claude/skills/console-session
Command: npx skills add https://github.com/open-watt/openwatt --skill console-session

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provide a unified console session architecture that abstracts transport-specific details behind a single Session interface, enabling consistent interactive I/O across Telnet, TCP, and local console.

Core Features & Use Cases

  • One Session class handles all transports, backed by a Stream where the protocol logic resides.
  • TerminalChannel serves as a dedicated side-channel for terminal state, resize events, and capability negotiation.
  • TelnetStream and ConsoleStream specialize I/O and negotiation while keeping Session agnostic to transport.
  • Enables embedding or cascading consoles, remote terminal access, and reusable session logic across devices.

Quick Start

Instantiate a ConsoleSession using a suitable Stream to enable interactive terminal sessions.

Frequently Asked Questions about console-session

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle terminal sessions across multiple transports like Telnet and TCP?

A unified console session architecture abstracts transport-specific details behind a single Session interface. It enables consistent interactive I/O across Telnet, TCP, and local console streams by delegating protocol logic to specialized Stream implementations.

How do I manage terminal state and resize events during remote console access?

Terminal state and resize events are managed through a dedicated side-channel. A TerminalChannel handles terminal state, side-channel data, and capability negotiation, keeping the main console session agnostic to underlying transport details.

Can I embed or cascade consoles using a single session interface?

Yes, embedding or cascading consoles is supported by the unified session interface. By keeping the Session class agnostic to transport-specific I/O and negotiation, the architecture allows reusable session logic across different devices and console implementations.

What is the best way to standardize ANSI rendering and input processing for console streams?

Standardizing ANSI rendering and input processing requires defining specific data structures and responsibilities within the stream. The architecture separates these concerns, enabling consistent interoperability across local console, Telnet, and TCP streams.

Do I need separate session logic for local console and remote terminal access?

No, separate session logic is not needed for local console and remote terminal access. One Session class handles all transports, backed by specialized streams like TelnetStream and ConsoleStream that manage their own I/O and protocol negotiation.

Why does my console session need protocol negotiation for terminal capabilities?

Protocol negotiation is needed to synchronize terminal capabilities between client and server. The TerminalChannel side-channel manages this negotiation, ensuring consistent input/output handling and proper terminal state synchronization across different transports.