Thanks to visit codestin.com
Credit goes to github.com

Skip to content

YeonV/io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IO - InputOutput | Your Local IFTTT, SuperCharged!

Vite Electron React TypeScript Material-UI Zustand

IO Application Screenshot - Dark Mode IO Application Screenshot - Light Mode

IO (InputOutput) is your personal, local automation powerhouse, built to connect your digital world seamlessly. Think of it as your own IFTTT or Zapier, running right on your machine, giving you total control and privacy. IO lets you link various Inputs (like keyboard shortcuts, Alexa commands, MIDI signals, or MQTT messages) to powerful Outputs (running shell commands, making REST API calls, controlling smart devices, or triggering text-to-speech).

Define "Rows" to connect an input trigger to an output action, and watch your custom automations come to life!

✨ Core Features - The IO Powerhouse

  • Modular by Design: Easily extend IO's capabilities by adding new Input and Output modules. The sky's the limit!
  • Intuitive Row-Based Automation: Simply pick an Input, pick an Output, configure them, and you've created an automation "Row."
  • Global Keyboard Shortcuts: Trigger any IO row with system-wide hotkeys, even when IO isn't the focused application.
  • Alexa Voice Control: Emulate local Alexa-compatible devices and assign actions to "On" and "Off" voice commands.
  • Customizable Remote Deck: Access and trigger your IO rows from a sleek web dashboard on any device on your local network.
  • Profiles for Context: Create different sets of active rows for different scenarios (e.g., "Work Mode," "Gaming Mode") and switch between them easily.
  • REST Blueprints & Presets:
    • Presets: Save and reuse common REST API call configurations.
    • Blueprints: Use simple forms (defined by you or bundled) to generate complex REST Presets instantly! Features an advanced Blueprint Definition Editor with UI/Code views and {{ }} placeholder autocomplete.
  • Row Trigger History: A detailed, filterable, and searchable log of all your row activations, presented in the new versatile <LogViewer />.
  • Comprehensive Settings UI: A new fullscreen settings dialog provides organized access to:
    • General app behavior (startup, close action).
    • Appearance (Light/Dark/System theme, custom primary/secondary colors).
    • Profile management.
    • A "Module Browser" to explore all module capabilities.
    • "All Module Settings Panels" for direct configuration of individual modules.
    • Data management tools.
  • Modern & Performant: Built with Electron, React, TypeScript, Vite, Zustand, and Material UI.
  • Local & Private: All your configurations and data stay on your machine.
  • Dark/Light Mode Excellence: Instant theme switching that respects your OS and allows user overrides, consistent across the app and the IO Deck.

🧩 Available Modules at a Glance

IO connects your world with a growing list of modules. Here's a snapshot:

Input Modules Output Modules
Keyboard Shortcuts Play Sound
MIDI Events Say (Text-to-Speech)
Alexa Voice Commands Show Alert
Time & Schedule Run Shell Command
MQTT Message Received Press Keys (Keyboard Output)
Hand Gesture (MediaPipe) Activate Profile
Holistic Pose (MediaPipe) REST Call (HTTP/S)
Gamepad Events Publish MQTT Message
WLED Control
LedFx Control

More A.I. and network modules are in development or planned! Check the "Module Browser" in Settings for the latest.

πŸš€ Getting Started

Installation & Your First Automation (For Users)
  1. Download: Grab the latest release for your OS (Windows, macOS, Linux) from the Releases Page.
  2. Install & Launch IO.
  3. Create Your First Row:
    • Click the big "[+] Add New IO Row" button.
    • Input: Select "Keyboard," then click into the shortcut field and press your desired hotkey (e.g., Ctrl+Alt+T).
    • Output: Select "Say," then type "BeastMode Activated!" into the text field.
    • Click "Save Row."
  4. Test it! Press Ctrl+Alt+T. Your computer should announce your triumph!
  5. Explore: Dive into other modules, create Profiles in Settings, and check out the IO Deck!
Development Setup (For Coders & Contributors)
  1. Prerequisites: Node.js (v20+ recommended), Yarn (Classic).
  2. Clone: git clone https://github.com/YeonV/io.git && cd io
  3. Install: yarn install (This will also run electron-builder install-app-deps to build native modules).
  4. Develop: yarn dev (Starts Electron app with Vite HMR).
  5. Build & Package: yarn dist (Or build:win, build:mac, build:linux). Refer to package.json for all build scripts.

πŸ”§ Using Key Features

πŸŽ›οΈ Profiles: Contextual Automation Sets

Profiles let you define different sets of active rows. For example, a "Work" profile might enable specific keyboard shortcuts and API calls, while a "Gaming" profile enables different ones.

  • Manage profiles in Application Settings -> Profiles.
  • Create, edit (select which rows are included), delete, and activate profiles.
  • Use the "Activate Profile" output module to switch profiles via an IO row itself!
🧩 REST Blueprints: Simplified API Integrations

Tired of configuring complex REST calls repeatedly? Blueprints are here!

  • Use Bundled Blueprints: Find them in Application Settings -> REST Settings -> Blueprints -> Use a Blueprint. Select one, fill in a few simple fields (e.g., a repository name for the GitHub Blueprint), and generate a ready-to-use REST Preset.
  • Import Blueprints: Drag & drop .ioBlueprint JSON files onto the app to import new ones.
  • Create Your Own: Use the Advanced Blueprint Editor (accessible from REST Settings -> Blueprints) to define your own. It features a full GUI for setting up simple user inputs and templating the generated REST call (URL, headers, body, etc.), complete with {{ }} placeholder autocomplete!
  • Apply to Rows: Once a Blueprint generates a Preset, or if you configure a row directly using a Blueprint via RestEditor, the row can be easily updated later using the Blueprint's simple input form.
πŸ“œ Row Trigger History: See What's Happening

IO now keeps a log of every time one of your rows is triggered.

  • Access it via Application Settings -> Row History.
  • The powerful LogViewer displays entries with timestamps, source, summary, and full row details (including any input payload).
  • Filter by log level, search by text, and export the history to JSON.

πŸ’‘ Project Status & Roadmap

IO is under active development by Blade (YeonV) with a focus on robust modularity, user experience, and powerful automation capabilities.

Key Milestones Recently Achieved
  • Complete Architectural Refactor: Solid foundation with Zustand, module registries, and clear separation of concerns.
  • REST Blueprints & Advanced Editor: Full GUI implementation.
  • Row Trigger History & LogViewer: Comprehensive logging and viewing.
  • Fullscreen Settings Dialog: Centralized and polished UI for all app configurations.
  • Enhanced Dark/Light Mode: Seamless, reload-free, and system-aware.
  • Time-Based Input Module: Advanced scheduling for your rows.
  • Robust CI/CD: Automated builds for all platforms, leveraging prebuilt native dependencies where possible.
  • All core modules (Keyboard, Alexa, MQTT, PlaySound, REST, Say, Shell, Time) are functional and integrated.
Exciting Features on the Horizon!
  • MQTT Module Polish: Even more robust MQTT integration.
  • mDNS/Bonjour Discovery: For easier device setup.
  • More Input Modules: Gamepad, Spotify, System Audio levels, Active Window focus.
  • Advanced Workflow/Sequencing Engine: For multi-step automations.
  • And much more! Your ideas and contributions are welcome.

🀝 Contributing

Passionate about local automation? Want to build the next cool module or enhance IO? Contributions are highly encouraged!

  1. Fork the repository (YeonV/io).
  2. Create your feature branch (git checkout -b feature/AmazingNewThing).
  3. Commit your changes (git commit -m 'Add some AmazingNewThing').
  4. Push to the branch (git push origin feature/AmazingNewThing).
  5. Open a Pull Request with a clear description of your awesome work!

Let's make IO the ultimate local automation tool together!


Join our Discord!


creator creator

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages