Authentication and Client Management
August 3, 2026 · View on GitHub
Client management runs through the hivemind-core CLI and the hivemind_core.database.ClientDatabase interface.
Adding a Client
To add a new satellite, use the add-client command (implemented in hivemind_core.scripts.add_client):
hivemind-core add-client --name "LivingRoom-Sat"
This generates:
- Node ID: a unique integer ID.
- Access Key: a public identifier for the client.
- Password: a secret used for the handshake.
Managing Permissions
The CLI writes permissions to the client row through ClientDatabase.
Blacklisting Skills
To stop a specific client (ID 1) from using a specific skill:
hivemind-core blacklist-skill "mycroft-weather.mycroftai" 1
- Source:
hivemind_core.scripts.blacklist_skill
Allowing Messages
New clients start with an empty allowed_types whitelist. The server denies every
message, and every binary payload, that such a client sends. To let a client send speak
messages:
hivemind-core allow-msg "speak" 1
- Source:
hivemind_core.scripts.allow_msg
Database Backends
HiveMind supports multiple database plugins for storing client credentials:
- SQLite (default for fresh installs):
hivemind_sqlite_database.SQLiteDB. - JSON (kept for existing JSON deployments):
json_database.hpm.JsonDB. - Redis:
hivemind_redis_database.RedisDB. Recommended for large deployments — see configuration.md.