$ show TeraTermProject/teraterm
Tera Term is a Windows terminal emulator supporting Telnet, SSH, serial connections, and file transfer protocols. It features a plugin system (TTXSamples) for extensibility, a macro language for automation, and extensive configuration options. The architecture is modular with core terminal emulation, SSH implementation (ttssh2), macro interpreter (ttpmacro), and plugin loader. Key external dependencies include Windows API, OpenSSL/LibreSSL, zlib, Oniguruma, and Argon2. The project is actively maintained with recent commits and supports both legacy and modern Windows versions.
The LLM identified 5 files worth highlighting for reuse:
Provides a reference-counted wide string class with safe memory management. Part of the Yebisuya Class Library (YCL) used throughout TTProxy and TTXSamples. Demonstrates non-obvious skill in resource management and is easily reusable in other projects.
Defines the standard plugin interface for Tera Term extensions. Includes the TTXBind entry point and hook structures for UI, setup, file transfer, and other functionalities. The pattern is isolated and demonstrated by the TTXSamples plugins, making it reusable for other applications seeking a plugin system.
Generic template for maintaining a history of strings with automatic duplicate suppression and persistence to INI files. Used in file dialogs, macro dialogs, and other UI components. The component is self-contained and could be extracted for use in any application requiring a history control.
Utility for safely loading DLLs and resolving exported functions with comprehensive error handling. Handles both Unicode and ANSI function names and provides fallback mechanisms. The module is isolated and reusable in any Windows application that loads plugins or optional DLLs.
Manages the macro script buffer, label resolution, and control flow (loops, jumps) for the Tera Term macro language. Demonstrates a simple bytecode-like interpreter design that is isolated from the rest of the macro system and could be adapted for other lightweight scripting needs.