diff --git a/docs/01_quickstart.md b/docs/01_quickstart.md new file mode 100644 index 0000000..0571009 --- /dev/null +++ b/docs/01_quickstart.md @@ -0,0 +1,72 @@ +# Quick Start Guide + +This guide will help you get started quickly with the HiveMind platform, allowing you to extend your OpenVoiceOS (OVOS) ecosystem across multiple devices, even with low-resource hardware. HiveMind lets you connect lightweight devices as satellites to a central OVOS hub, offering centralized control and fine-grained permissions. + +## 🚀 Installation + +To begin using HiveMind Core, you need to install the `hivemind-core` package in your OVOS device. This can be done via pip: + +```bash +pip install hivemind-core +``` + +## 🛰️ Adding a Satellite Device + +Once the server is running, you'll need to add client credentials for each satellite device you want to connect. + +1. Run the following command to add a satellite device: + ```bash + hivemind-core add-client + ``` + The output will show you important details like: + - Node ID + - Friendly Name + - Access Key + - Password + - Encryption Key (deprecated, only used for legacy clients) + +2. Provide these credentials on the client devices to enable the connection. + +## 🖥️ Running the HiveMind Server + +Start the HiveMind server to accept client connections on a specified port: + +```bash +hivemind-core listen --port 5678 +``` + +The server will now listen for incoming satellite connections. + +> 💡 `hivemind-core` needs to be running in the same device as OVOS + +## 🔑 Permissions + +HiveMind Core uses a flexible permissions system, where each client's permissions are customizable. By default: +- Only essential bus messages are allowed. +- Skills and intents are accessible but can be blacklisted or restricted. + +You can manage permissions for clients by using commands like `allow-msg`, `blacklist-msg`, `allow-skill`, and `blacklist-skill`. + +### Example Use Cases: + +- **Basic AI Integration**: Enable a simple client to send natural language instructions. +- **Custom Permissions**: Restrict an IoT device to only communicate with specific message types, such as `temperature.set`. + +## HiveMind Core Commands Overview + +Here are the basic commands for managing clients and their permissions: + +- **Add a new client**: + ```bash + hivemind-core add-client --name "satellite_1" --access-key "mykey123" --password "mypass" + ``` +- **List all registered clients**: + ```bash + hivemind-core list-clients + ``` +- **Start listening for client connections**: + ```bash + hivemind-core listen --port 5678 + ``` + +For detailed help on each command, use `--help` (e.g., `hivemind-core add-client --help`). \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 779eb3d..4ec9ab5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,9 +3,9 @@ site_url: https://jarbashivemind.github.io/HiveMind-community-docs/ nav: - Home: index.md - About: + - Quick start: 01_quickstart.md - Terminology: 01_terminology.md - Create a Hive: 02_create.md - - Pairing: 03_pairing.md - Auto Discovery: 05_presence.md - Nested Hives: 15_nested.md - Nodes: @@ -21,6 +21,7 @@ nav: - Protocol: 04_protocol.md - OVOS Messages: 13_mycroft.md - Security: + - Pairing: 03_pairing.md - Permissions: 16_permissions.md - Handshake: 12_handshake.md - Developers: