Puppetty.NET
1.0.0
See the version list below for details.
dotnet add package Puppetty.NET --version 1.0.0
NuGet\Install-Package Puppetty.NET -Version 1.0.0
<PackageReference Include="Puppetty.NET" Version="1.0.0" />
<PackageVersion Include="Puppetty.NET" Version="1.0.0" />
<PackageReference Include="Puppetty.NET" />
paket add Puppetty.NET --version 1.0.0
#r "nuget: Puppetty.NET, 1.0.0"
#:package Puppetty.NET@1.0.0
#addin nuget:?package=Puppetty.NET&version=1.0.0
#tool nuget:?package=Puppetty.NET&version=1.0.0
![]()
Puppetty
Cross-platform Playwright for terminals, in .NET. Run any CLI or TUI program in a real pseudo-terminal, emulate its screen headlessly, and drive it from tests, scripts or AI agents: type, press keys, click, wait for the screen, assert, snapshot and replay.
- Emulator: XTerm.NET, a headless xterm-compatible emulator.
- PTY: Porta.Pty. It uses the bundled ConPTY (OpenConsole) on Windows and openpty on Linux and macOS.
- Target: net10.0. Tested on Windows and Linux.
using Puppetty;
using static Puppetty.Testing.Assertions;
await using var term = await Terminal.LaunchAsync("python3", new LaunchOptions { Args = ["-i", "-q"] });
await term.WaitForTextAsync(">>> ");
await term.TypeAsync("print(6*7)");
await term.PressAsync("Enter");
await Expect(term.GetByText("42")).ToBeVisibleAsync();
await Expect(term).ToMatchSnapshotAsync("python-42");
Packages
| Package | Install | What it is |
|---|---|---|
Puppetty.NET (src/Puppetty.NET) |
dotnet add package Puppetty.NET |
The library, namespace Puppetty: Terminal, Screen, locators, key/mouse/paste encoding, settling, snapshots, traces. Also auto-retrying Expect(...) assertions and golden snapshots (namespace Puppetty.Testing) for xUnit, NUnit and MSTest. |
Puppetty (src/Puppetty) |
dotnet tool install -g Puppetty |
The puppetty tool: shell commands with daemon-backed sessions and a live attach view, and puppetty mcp, an MCP server giving AI agents the terminal_* tools. |
Docs
docs/api.md: the library: launching, input, reading the screen, locators, assertions, settling, snapshots, traces.
docs/mcp.md: the MCP server, setup in Claude Code, the annotated screenshot format.
docs/cli.md: the
puppettyCLI and its daemon.
Build and test
dotnet build Puppetty.slnx
dotnet test Puppetty.slnx
The end-to-end tests drive small fixture apps (tests/fixtures/Puppetty.Fixture). The smoke tests
drive real programs (vim, less, top/htop, pwsh, python) and skip any that aren't installed.
samples/Puppetty.Samples.XUnit is a small xUnit suite to copy from.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.