DeckTap (LAN MVP)

May 18, 2025 ยท View on GitHub

Alternate Text

๐Ÿ“ก DeckTap is a lightweight local-network remote for controlling presentations.
Use your phone to wirelessly control PowerPoint, Keynote, PDF slideshows โ€” no app installation needed.


โœจ Features

  • ๐Ÿ“ฑ Control slides via your phone browser
  • ๐ŸŒ Works over local Wi-Fi/Hotspot network
  • ๐Ÿ–ฅ Simulates keyboard arrow keys to navigate slides
  • ๐Ÿš€ Minimal setup: run a local Node.js server and scan a QR code
  • ๐Ÿ”’ No internet required, safe and private

๐Ÿ“ฆ Project Structure

decktap/
โ”œโ”€โ”€ client/            # Computer side agent
โ”‚    โ”œโ”€โ”€ lan.js        # LAN control
โ”‚    โ”œโ”€โ”€ cloud.js      # Connect cloud relay server in the future
โ”‚    โ””โ”€โ”€ config.js
โ”‚
โ”œโ”€โ”€ controller/        # Mobile phone controller web page
โ”‚    โ””โ”€โ”€ index.html
โ”‚
โ”œโ”€โ”€ server-cloud/      # Cloud server for remote control in the future
โ”‚    โ””โ”€โ”€ server.js
โ”‚
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ .gitignore

๐Ÿ”ง Prerequisites

macOS Permissions

DeckTap uses @nut-tree/nut-js to simulate keyboard events. On macOS, you need to grant Accessibility permissions to your terminal:

  1. Open System Settings > Privacy & Security > Accessibility
  2. Click the lock icon ๐Ÿ”’ to make changes
  3. Click the + button
  4. Select Terminal.app (or iTerm, VS Code, etc. depending on what you use)
  5. Check the box next to your terminal app

Note: Without these permissions, DeckTap won't be able to control your presentations.


๐Ÿš€ Getting Started (LAN Mode)

  1. Install dependencies:

    cd decktap-web && npm install && npm run build
    cd .. && npm install
    
  2. Grant accessibility permissions (macOS only):

    • Follow the steps in macOS Permissions
    • Restart your terminal after granting permissions
  3. Start the server:

    npm start
    
  4. Connect with your phone:

    • Connect your phone to the same WiFi network(only support private WiFi without vlan, not working on campus network) as your computer
    • Open the displayed URL in your phone's browser or Scan the QR code
    • Start controlling your presentation (Use ๐Ÿ‘‰ to switch left and right hand mode)

๐Ÿ–ฑ๏ธ Standalone Distribution Quick Start (Not available yet, an Electron client will be developed in the future)

If you received a standalone executable version of DeckTap (such as decktap-macos, decktap-win.exe, or decktap-linux), you can run it directly without installing Node.js or any dependencies.

Steps

  1. macOS / Linux users:

    • Before the first run, grant execute permission (only needed once):
      chmod +x decktap-macos
      
    • Run:
      ./decktap-macos
      
  2. Windows users:

    • Run it in the command prompt:
      decktap-win.exe
      
  3. First run on macOS: Please follow the terminal prompts to grant Accessibility permissions (see above macOS Permissions).

  4. Scan the QR code or open the displayed URL on your phone to start controlling your presentation!


If you encounter issues such as failure to run, insufficient permissions, or cannot access the page, please send the terminal error message to the developer for help.