ChannelTerm logo

ChannelTerm

Shares serial or SSH terminal sessions between humans and AI clients for board debugging, GDB workflows, and file transfers.

Install ChannelTerm

Pick your client, then add it in one click or paste the config.

Streamable HTTP (Remote)
Server URL
http://127.0.0.1:37099/mcp

Remote servers are added in the app, not the config file: Customize โ†’ Connectors โ†’ Add custom connector, then paste this URL.

Overview

ChannelTerm provides shared serial and SSH terminal sessions that humans and AI clients can use at the same time. Its MCP interface connects external clients to a local Session Host, while the terminal attachment displays device output and AI activity separately. Reach for ChannelTerm when debugging embedded boards, coordinating AI-assisted Linux debugging, transferring files over a serial link, or collecting diagnostic evidence. It runs on Windows, Linux, and macOS and supports managed or network-based GDB workflows.

Use cases

  • Share a serial console between a developer and an AI agent
  • Debug Linux programs with GDB through a board connection
  • Interrupt U-Boot and verify short boot-time prompts
  • Transfer firmware or logs through a shared Session
  • Export diagnostic evidence with optional raw serial bytes

Key features

  • Shared serial and SSH terminal Sessions
  • MCP access over streamable HTTP
  • Independent human and AI terminal views
  • GDB, serial-bridge, and network debugging workflows
  • Serial file transfer with SHA-256 checks
  • Windows, Linux, and macOS support

Security & health

What it can reach and how reliably it runs โ€” from our own checks, not the maintainerโ€™s claims.

ActiveLast checked Today

Recent health check succeeded.

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks โ€” not a rating.

GitHub stars123Stargazers on the source repository.
Last commit4d agoMost recent push to the default branch.

How ChannelTerm works

What ChannelTerm does

ChannelTerm connects a human terminal and an MCP client to the same serial or SSH Session. Both can observe the device's terminal activity, while a human can continue using the attached console as an AI agent operates the board. AI command activity appears as a local activity block rather than being inserted into the device's raw byte stream.

The project is aimed at board bring-up and embedded Linux debugging. It supports serial consoles, SSH sessions, GDB-based debugging, U-Boot workflows, diagnostic ZIP exports, and file transfers. Serial transfers can use SHA-256 checks; dedicated SFTP or SCP connections are also available.

How it works

The channelterm attach command opens a device connection and attaches the current terminal. For a shared attachment, ChannelTerm can start a temporary local HTTP MCP Session Host automatically. An AI client configured for that Host can then create or join the same Session. Sessions have identifiers such as SER-1 or opaque IDs; labels are display names rather than identifiers.

A persistent Host can instead be started with channelterm mcp --transport http. This allows Sessions to remain available independently of the shell that created an attachment. The default endpoint is http://127.0.0.1:37099/mcp. Each client reads independently, so an AI reader does not consume output from the human's view.

The MCP interface supports terminal commands and interactive terminal input through terminal_exec and terminal_write. External debugger output follows separate visibility rules from ordinary terminal output. GDB can work through a serial bridge, a managed setup, or the board's network connection.

Setup and configuration

Prebuilt archives are available for Windows, Linux, and macOS on amd64 and arm64. After extracting an archive, run channelterm install; the installer creates the channelterm and cterm commands and can update the user PATH. Building from source requires Go 1.26 or newer.

Run channelterm init --mcp to configure an AI client for the HTTP Host. The setup stores a local Bearer credential. A quick shared serial workflow can start with a command such as channelterm attach /dev/ttyUSB0 --baud 115200 on Linux, or the corresponding device path on Windows or macOS.

Limitations and notes

The temporary Host and its Sessions stop when the attachment that created them exits. Use a persistent Host when other shells or clients must continue using the Session. The HTTP listener uses a per-user Bearer token and defaults to loopback access. LAN access requires the same token, a reachable address, TLS, and separate network controls; the endpoint should not be exposed without those protections.

A private attachment can be opened with --private when MCP sharing is not wanted. The install and uninstall commands preserve user data by default, while uninstall --purge requires confirmation before deleting configuration, device state, and the local HTTP credential.

Reviews

No reviews yet โ€” be the first to share how it worked for you.

Frequently Asked Questions about ChannelTerm

ChannelTerm is an MCP server that connects AI clients and human operators to shared serial or SSH terminal sessions. Its main tools are terminal_exec for agent commands and terminal_write for raw interactive input, while the CLI and MCP clients observe the same device activity.

Download the archive for Windows, Linux, or macOS, verify its SHA256SUMS entry, extract it, and run the platform's install command. You can also build from source with Go 1.26 or newer using `go build ./cmd/channelterm`, then run `channelterm install`.

Run `channelterm init --mcp` to configure a client for the local HTTP Host, then attach a serial or SSH Session with `channelterm attach`. A temporary Host can start automatically, or you can run `channelterm mcp --transport http` for a persistent Host.

Start a persistent Host with `channelterm mcp --transport http` instead of relying on the temporary Host created by `attach`. The temporary Host and all Sessions it owns stop when the creating attachment exits.

Related MCP servers

Add a badge to your READMEShow itโ€™s listed โ€” live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewChannelTerm AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/channelterm?style=directory)](https://allmcps.com/mcp/channelterm)
HTML Embed
<a href="https://allmcps.com/mcp/channelterm"><img src="https://allmcps.com/api/badge/channelterm?style=directory" alt="ChannelTerm on AllMCPs" /></a>