pushtodisplay
OfficialThis server lets you send real-time content updates to PushToDisplay boards and manage those boards from AI agents or automated pipelines.
Send display updates (
pushtodisplay_send_update): Publish text content to a board with rich styling options — text size, font weight, hex colors, background colors, panel targeting (1–4), full-panel mode, content density, and horizontal/vertical alignment.List boards (
pushtodisplay_list_boards): Retrieve all boards owned by the authenticated user.Get board details (
pushtodisplay_get_board): Fetch details of a specific board by its ID.Create a board (
pushtodisplay_create_board): Create a new display board with a name, optional description, and optional layout ID.Update a board (
pushtodisplay_update_board): Modify an existing board's name, description, or layout.Set default board (
pushtodisplay_set_default_board): Designate a board as the user's default, so updates can be sent without specifying a board ID each time.Delete a board (
pushtodisplay_delete_board): Permanently remove a board and all its data (irreversible).List active devices (
pushtodisplay_list_devices): View all active device-board stream connections currently linked to your boards.
Allows GitHub Copilot (VS Code Copilot) to send updates to display boards and manage boards (create, list, delete, set default) via the MCP protocol.
pushtodisplay
Command-line interface and MCP server for Push To Display — send real-time updates to display boards from your terminal or AI agents.

Install
Run directly with npx (no install needed):
npx pushtodisplay --helpOr install globally:
npm install -g pushtodisplayRequires Node.js 18+.
Quick start
# Log in (opens browser)
pushtodisplay auth login
# Send an update (uses your default board)
pushtodisplay send "Hello, Display!"
# Send to a specific board
pushtodisplay send -b <board-id> "Deploy completed"
# List your boards
pushtodisplay boards listAuthentication
Log in with your Push To Display account — the same account you use in the mobile app.
Browser login (default)
pushtodisplay auth loginOpens your browser. Sign in and the CLI receives your credentials automatically.
Device code login (headless)
For machines without a browser — SSH sessions, containers, or remote servers:
pushtodisplay auth login --device-codeThe CLI prints a URL and a one-time code. Open the URL on any device, enter the code, and approve the login.
Credentials are stored in your OS keychain (macOS Keychain, Linux libsecret, Windows Credential Manager). Falls back to ~/.config/pushtodisplay/ if the keychain is unavailable.
# Check auth status
pushtodisplay auth status
# Log out (clear stored credentials)
pushtodisplay auth logoutCommands
send
Send a display update to a board.
# Simple text
pushtodisplay send -b my-board-id "Deploy succeeded"
# Styled text
pushtodisplay send -b my-board-id "Status" --size large --weight bold --color "#00FF00"
# Multiple blocks
pushtodisplay send -b my-board-id "Build:" "passing" --color "#22C55E"
# Panel targeting with layout options
pushtodisplay send -b my-board-id --panel 2 "Right panel content"
pushtodisplay send -b my-board-id --panel 1 --full-panel --density compact --align-x center "Alert"
# Per-block styling with JSON (repeatable)
pushtodisplay send -b my-board-id \
--block '{"text": "API Health", "size": "large", "weight": "bold"}' \
--block '{"text": "Uptime: 99.97%", "color": "#22C55E"}'
# Pipe a full JSON payload from stdin
echo '{"boardId":"my-board-id","blocks":[{"text":"From pipe"}]}' | pushtodisplay send --stdinIf no -b flag is provided, the server uses your default board.
Style flags
Flag | Values | Description |
|
| Text size |
|
| Font weight |
| Hex color ( | Text color |
| Hex color ( | Background color |
Panel flags
Flag | Values | Description |
|
| Target panel number |
| — | Fill the entire panel area |
|
| Content spacing |
|
| Horizontal alignment |
|
| Vertical alignment |
Other flags
Flag | Description |
| Board ID |
| Styled block as JSON (repeatable) |
| Read full JSON request from stdin |
boards
pushtodisplay boards list # List all boards
pushtodisplay boards get <id> # Get board details
pushtodisplay boards create -n "Name" # Create a board
pushtodisplay boards create -n "Dash" -l 4 # Create with a layout
pushtodisplay boards delete <id> # Delete a boardCreate options:
Flag | Description |
| Board name (required) |
| Board description |
| Layout ID |
devices
pushtodisplay devices list # List active device-board streamsconfig
pushtodisplay config # Show current configuration
pushtodisplay config show # Same as aboveJSON output
Add --json to any command for machine-readable output:
pushtodisplay boards list --json
pushtodisplay send -b my-board "test" --jsonConfiguration
Configuration is resolved in order: environment variables → config file → defaults.
Env var | Description | Default |
| API endpoint |
|
| Service endpoint |
|
| Identity provider |
|
| Config directory |
|
MCP server
The CLI includes a built-in Model Context Protocol server, giving AI agents (Claude, Cursor, VS Code Copilot, and others) direct access to your display boards.
The MCP server inherits your CLI session — if you've run pushtodisplay auth login, it authenticates automatically.
Setup
Claude Code
claude mcp add pushtodisplay -- npx pushtodisplay mcpClaude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"pushtodisplay": {
"command": "npx",
"args": ["pushtodisplay", "mcp"]
}
}
}Cursor
Open Settings → MCP Servers → Add Server, or edit .cursor/mcp.json:
{
"mcpServers": {
"pushtodisplay": {
"command": "npx",
"args": ["pushtodisplay", "mcp"]
}
}
}VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"pushtodisplay": {
"command": "npx",
"args": ["pushtodisplay", "mcp"]
}
}
}Other MCP clients
Any MCP client that supports stdio transport can use Push To Display. The server command is:
npx pushtodisplay mcpAvailable MCP tools
Tool | Description |
| Send content to a board |
| List all boards |
| Get details of a board |
| Create a new board |
| Update a board's name, description, or layout |
| Set a board as your default |
| Delete a board permanently |
| List active device connections |
Commands at a glance
Command | Description |
| Log in (browser or device code) |
| Remove stored credentials |
| Show current auth status |
| Send a display update |
| List your boards |
| Get board details |
| Create a new board |
| Delete a board |
| List active device connections |
| Show current configuration |
| Start the MCP server |
API key authentication
For CI/CD pipelines and scripts where interactive login isn't available, you can authenticate with an API key. Create one from the mobile app or the web portal. API keys start with pt_.
# Via environment variable
export PTD_API_KEY=pt_your_key_here
pushtodisplay send "From CI"
# Or store in keychain
pushtodisplay auth login --api-key pt_your_key_hereNote: API key auth only supports the
sendcommand. Useauth loginfor full access to boards, devices, and config management.
Screenshots
4-panel layout — regional status at a glance
Multi-panel with CI/CD pipeline and infrastructure logs
Incident timeline with color-coded severity
License
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pushtodisplay/cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server