Use your Raspberry Pi as a browser-based KVM.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Jason Wallace d3739b5795
Add request timeout to license URL check (#1700)
2 days ago
.circleci Implicitly install requirements.txt when installing dev_requirements.txt (#1681) 4 weeks ago
.dependabot Add checks for whitespace consistency (#405) 3 years ago
.github Update Github Actions to a version that support Node 16 (#1447) 6 months ago
.vscode Replace isort with ruff (#1632) 3 months ago
app Deprecate settings.yml, and document usage (#1692) 1 week ago
bundler Prevent installation on Bookworm (#1671) 1 month ago
debian-pkg Add video streaming mode to TinyPilot logs (#1666) 1 month ago
dev-scripts Use a fresh database on each e2e test run (#1637) 2 months ago
docs Remove TinyPilot Ansible role (#1509) 5 months ago
e2e Add request timeout to license URL check (#1700) 2 days ago
hooks Update comment for set -e to match our new conventions (#1384) 7 months ago
readme-assets Replace Voyager 2 with Voyager 2a in README (#1334) 9 months ago
scripts Add video streaming mode to TinyPilot logs (#1666) 1 month ago
.dockerignore Add a README.md to explain the tinypilot-privileged directory (#1421) 6 months ago
.eslintrc.cjs Add ESLint rule to prevent parameter reassignment (#1399) 7 months ago
.gitignore Backport end-to-end tests to TinyPilot Community (#1451) 6 months ago
.lintianignore Set up TinyPilot virtual environment from Debian package (#1352) 6 months ago
.prettierignore Backport end-to-end tests to TinyPilot Community (#1451) 6 months ago
.pylintrc Replace pylint-quotes with ruff (#1635) 3 months ago
.ruff.toml Use ruff to enforce Python docstring conventions (#1633) 3 months ago
.shellcheckrc Add ShellCheck to Circle CI config. (#569) 3 years ago
.style.yapf Configure VS Code to auto-format code with YAPF (#707) 3 years ago
.yapfignore Configure VS Code to auto-format code with YAPF (#707) 3 years ago
ARCHITECTURE.md Remove TinyPilot Ansible role (#1509) 5 months ago
CONTRIBUTING.md Implicitly install requirements.txt when installing dev_requirements.txt (#1681) 4 weeks ago
COPYRIGHT Update COPYRIGHT (#1401) 7 months ago
LICENSE Add an About page (#976) 2 years ago
MANIFEST.in add setup.py for Python packaging (#94) 3 years ago
README.md Delete Ansible from installation process (#1604) 3 months ago
__init__.py Initial commit 4 years ago
dev_app_settings.cfg Remove unused dev env variable. (#1202) 1 year ago
dev_requirements.txt Implicitly install requirements.txt when installing dev_requirements.txt (#1681) 4 weeks ago
get-tinypilot.sh Place temporary install files within RAMdisk (#1464) 6 months ago
package-lock.json Set npm package name to `tinypilot` (#1483) 5 months ago
package.json Set npm package name to `tinypilot` (#1483) 5 months ago
playwright.config.js Disable parallel e2e test execution locally (#1695) 1 week ago
quick-install Update overhaul community release. (#1046) 1 year ago
requirements.txt Upgrade all pip dependencies to their latest versions (#1532) 5 months ago
setup.py Update URLs for new TinyPilot org (#724) 3 years ago

README.md

TinyPilot

License Contributors CircleCI Reddit 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 official hardware packages give you everything you need to run TinyPilot and allows you to fund TinyPilot's development for future improvements.

TinyPilot Voyager 2a

Photo of TinyPilot Voyager 2a

Voyager 2a is TinyPilot's professional-grade KVM over IP device. Its quiet, compact design makes it a great fit for professional environments such as offices, data centers, and server rooms.

Build your own

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.

Pre-requisites

  • Raspberry Pi OS Bullseye (32-bit)
  • python3-venv

Simple installation

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

Updates

To update to the latest version of TinyPilot, run the update script:

/opt/tinypilot/scripts/upgrade && sudo reboot

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.

Security considerations

TinyPilot does not support authentication or transport-level encryption. You should only use TinyPilot on networks that you trust. Anyone who accesses the TinyPilot URL can shutdown or restart your Pi and type arbitrary commands into the device to which your Pi is connected.

To use TinyPilot on untrusted networks, you can upgrade to TinyPilot Pro, which adds password-based authentication and TLS for end-to-end encryption.

As a free alternative, you can adjust your Nginx configuration (included by default with the installation) to require HTTP Basic Authentication and add a self-signed TLS certificate.

Detailed project updates

If you're interested in seeing what's happening with the project at a granular level, weekly updates appear every Friday on What Got Done:

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/product/tinypilot-pro.