Icod.Terminal 0.1.0-alpha.10

This is a prerelease version of Icod.Terminal.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Icod.Terminal --version 0.1.0-alpha.10
                    
NuGet\Install-Package Icod.Terminal -Version 0.1.0-alpha.10
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Icod.Terminal" Version="0.1.0-alpha.10" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Icod.Terminal" Version="0.1.0-alpha.10" />
                    
Directory.Packages.props
<PackageReference Include="Icod.Terminal" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Icod.Terminal --version 0.1.0-alpha.10
                    
#r "nuget: Icod.Terminal, 0.1.0-alpha.10"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Icod.Terminal@0.1.0-alpha.10
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Icod.Terminal&version=0.1.0-alpha.10&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Icod.Terminal&version=0.1.0-alpha.10&prerelease
                    
Install as a Cake Tool

Icod.Terminal

Icod.Terminal is the managed, cross-platform live-terminal layer for the Icod library family. It is intended to sit between Icod.TermInfo and higher-level consumers such as Icod.DCurses, terminal-aware command-line tools, monitors, editors, pagers, and REPLs.

Status

The project is under initial 0.1.0 development. T01 established the repository/package foundation, T02 froze the extraction boundary, T03 established low-level endpoint/native-mode parity, T04 added semantic input policy, T05 established the reversible TerminalSession lifecycle, T06 bound sessions to explicit Icod.TermInfo terminal identities and capability-safe output, T07 added live dimensions and lifecycle re-entry, T08 added incremental UTF-8/TermInfo key decoding and unified event reads, and T09 now provides capability-driven reversible presentation leases with nested ownership and lifecycle re-entry.

The first functional milestone is driven by the terminal requirements of watch, slabtop, and top as they migrate into Icod.ProcPs.

Architecture

Icod.TermInfo
      ^
      |
Icod.Terminal
      ^
      |
Icod.DCurses
      ^
      |
watch / slabtop / top

Icod.TermInfo remains the immutable terminal-capability authority. Icod.Terminal owns live endpoint observation, terminal modes, input, dimensions, lifecycle, terminal identity, output setup, and reversible presentation-state mechanisms. Icod.DCurses owns cells, windows, virtual-screen state, and refresh/diff policy. A future Icod.Pty package remains an adjacent concern rather than a prerequisite.

Target frameworks

The library targets:

  • net8.0;
  • net10.0.

The codebase uses C# 13.

Build

On Windows:

build.cmd

On POSIX hosts:

sh build.sh

Both scripts support clean, restore, build, test, and pack. Running either script without an argument performs the complete sequence.

Development roadmap

See Icod.Terminal-Development-Roadmap.md for the architectural boundaries, 0.1.0 acceptance gates, and the path toward the stable 1.0.0 contract. The completed T02 extraction matrix is recorded in docs/T02-Extraction-Inventory-and-Contract-Classification.md, the T03 low-level contract is documented in docs/T03-Endpoint-Observation-and-Native-Mode-Parity.md, the T04 semantic mode contract is documented in docs/T04-Semantic-Input-Mode-Policy.md, the T05 session ownership contract is documented in docs/T05-TerminalSession-Lifecycle-and-Ownership.md, the T06 identity/output contract is documented in docs/T06-Terminal-Identity-TermInfo-and-Output-Setup.md, the T07 lifecycle contract is documented in docs/T07-Live-Dimensions-and-Lifecycle-Events.md, and the T08 input contract is documented in docs/T08-Input-Byte-Stream-and-Key-Event-Decoder.md.

The T09 presentation-lease contract is documented in docs/T09-Reversible-Terminal-Presentation-Leases.md.

License

Icod.Terminal is licensed under the GNU Lesser General Public License v3.0 or later. See LICENSE.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Icod.Terminal:

Package Downloads
Icod.DCurses

Managed, cross-platform curses-like terminal UI library for .NET, built on Icod.TermInfo and Icod.Terminal.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.3.0 2,413 8/29/2026
0.3.0-alpha.8 60 8/28/2026
0.2.0 52 8/28/2026
0.2.0-alpha.6 80 8/27/2026
0.1.0 52 8/27/2026
0.1.0-alpha.13 46 8/27/2026
0.1.0-alpha.11 1,749 8/25/2026
0.1.0-alpha.10 67 8/25/2026
0.1.0-alpha.9 54 8/25/2026

0.1.0-alpha.10 adds ordered asynchronous lifecycle participants so higher terminal layers can prepare before suspend and re-enter after Terminal restores its owned state.