Skip to content

Commit

Permalink
quickstart docs
Browse files Browse the repository at this point in the history
  • Loading branch information
JarbasAl committed Dec 22, 2024
1 parent f18af83 commit 2c186b7
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 1 deletion.
72 changes: 72 additions & 0 deletions docs/01_quickstart.md
Original file line number Diff line number Diff line change
@@ -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`).
3 changes: 2 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand Down

0 comments on commit 2c186b7

Please sign in to comment.