MCPcopy Index your code
hub / github.com/tiny-pilot/tinypilot

github.com/tiny-pilot/tinypilot @2.0.2 sqlite

repository ↗ · DeepWiki ↗ · release 2.0.2 ↗
1,024 symbols 2,145 edges 134 files 160 documented · 16% 14 cross-repo links
README

TinyPilot

License Contributors CircleCI Twitter

Overview

Turn your Raspberry Pi into a browser-based KVM.

TinyPilot demo

https://tinypilotkvm.com

Features

  • Video capture (HDMI/DVI/VGA)
  • Keyboard forwarding
  • Mouse forwarding
  • Fullscreen mode
  • Paste text from clipboard

Official builds

TinyPilot Voyager 3

TinyPilot Voyager 3 is TinyPilot’s latest professional-grade KVM over IP device, trusted by IT teams in small offices and Fortune 10 companies, with plug-and-play set up backed by a 12-month warranty and expert priority support.

Photo of TinyPilot Voyager 3

What you get:

  • Rugged rack-mountable design with ultra-quiet active cooling
  • Status screen with vital system information
  • HDMI loop output provides video passthrough to a local monitor
  • 1920x1200 video capture for better compatibility
  • PoE option available for flexible deployment (Voyager 3 Plus)
  • Optional additional Ethernet interface (Voyager 3 Plus)
  • FCC/CE compliant
  • TinyPilot Pro software included with lifetime updates
  • 12-month extendable warranty
  • Expert priority support

Shop Voyager 3 →

Build your own

Want to build your own device to run TinyPilot? You can assemble a DIY version using a Raspberry Pi 4b and a USB capture dongle. This is a great option for hobbyists and those on a tight budget.

See "TinyPilot: Build a KVM Over IP for Under \$100" for a more detailed tutorial on how to assemble these parts to create a TinyPilot.

Simple installation

Requirements

  • A Raspberry Pi 4B running Raspberry Pi OS Bullseye (32-bit)

You can install TinyPilot on a compatible Raspberry Pi in just two commands.

curl \
  --silent \
  --show-error \
  https://raw.githubusercontent.com/tiny-pilot/tinypilot/master/get-tinypilot.sh | \
    bash - && \
  sudo reboot

When your Pi reboots, you should be able to access TinyPilot by visiting your Pi hostname in the browser. For example, if your device is named raspberrypi:

If you're using an HDMI to CSI capture chip (such as with a TinyPilot Voyager series device), see the additional configuration steps required for video capture.

Developer installation

See the CONTRIBUTING file.

Other installation options

Diagnostics

If you're having trouble with TinyPilot, you can retrive logs from the web dashboard by clicking "Logs" in the bottom of the main dashboard.

If you can't access the web dashboard, you can retrieve the logs by SSHing into the device and running the following command:

sudo /opt/tinypilot-privileged/scripts/collect-debug-logs

This log is useful if you file a bug report.

You can read more details about the logs in the wiki.

See also

Acknowledgments

TinyPilot would not be possible without the excellent and generous work from many open source projects, the most notable of which are listed below:

Mailing list

For news about major TinyPilot releases and other updates about the project, sign up for the TinyPilot mailing list:

Upgrade to Pro

TinyPilot Pro includes additional features for professional users, including:

Support the project and upgrade to Pro at https://tinypilotkvm.com/products/tinypilot-pro.

Core symbols most depended-on inside this repo

get
called by 68
app/db/users.py
getCsrfToken
called by 16
app/static/js/controllers.js
isKeyPressed
called by 16
app/static/js/keyboardstate.js
start
called by 14
app/static/js/updatelogs.js
determineRedirectParams
called by 13
app/static/js/login.js
info_sensitive
called by 12
app/log.py
processKeystroke
called by 12
app/static/js/app.js
delete
called by 12
app/db/users.py

Shape

Function 379
Method 379
Class 153
Route 113

Languages

Python77%
TypeScript23%

Modules by API surface

app/api.py66 symbols
app/auth_test.py51 symbols
app/static/third-party/socket.io/4.7.1/socket.io.min.js44 symbols
app/static/third-party/janus-gateway/1.3.2/janus.js39 symbols
app/static/js/controllers.js36 symbols
app/request_parsers/mouse_event_test.py31 symbols
app/network_test.py31 symbols
app/request_parsers/video_settings_test.py27 symbols
app/update/result_store_test.py25 symbols
app/version_test.py23 symbols
app/db/store_test.py20 symbols
app/static/js/events.js19 symbols

Dependencies from manifests, versioned

@playwright/test1.35.1 · 1×
eslint8.44.0 · 1×
eslint-plugin-html7.1.0 · 1×
mocha10.8.2 · 1×
playwright1.35.1 · 1×
prettier2.8.8 · 1×
Flask3.1.1 · 1×
Flask-SocketIO5.5.1 · 1×
Flask-WTF1.2.2 · 1×
Jinja23.1.6 · 1×
MarkupSafe3.0.2 · 1×
PyYAML6.0.2 · 1×

For agents

$ claude mcp add tinypilot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact