# ChannelTerm [Health: Active]

**Category:** 📟 Embedded System  
**Repository:** https://github.com/akira-init1/ChannelTerm  
**GitHub Stars:** 123  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/channelterm

## Description
Shared terminal sessions for humans and AI agents, starting with serial and hardware debugging.

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "channelterm": {
    "url": "http://127.0.0.1:37099/mcp"
  }
}
```

## Documentation

## 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.

_Full upstream README: https://allmcps.com/mcp/channelterm/readme_

