KRL (Kynetx Rules Language) rulesets for Manifold, updated for compatibility with Pico Engine version 1.0.
Manifold is a platform built on the pico engine that enables the creation and orchestration of pico-based systems. These rulesets define the behavior of pico devices in the Manifold ecosystem.
- ✅
io.picolabs.manifold_owner.krl— Uses modern Wrangler API; updated channel creation and ruleset installation patterns - ✅
io.picolabs.manifold_pico.krl— Usesforeachinitialization, synchronouswrangler:createChannel(),meta:rulesetURIfor URL derivation; includescreateCommunity,addThingToCommunity, andgetCommunities - ✅
io.picolabs.profile.krl— Updated for Pico Engine 1.0 - ✅
io.picolabs.thing.krl— Community support:communities(),autoAcceptCommunity,communityAdded/communityRemoved,notifyCommunity - ✅
io.picolabs.safeandmine.krl— Partially updated; tags not yet working - ✅
io.picolabs.new_tag_registry.krl— Refactored for Pico Engine 1.0 - ✅
io.picolabs.manifold_bootstrap.krl— One-step bootstrap automation for the root pico - ✅
io.picolabs.community.krl— Full community/thing subscription system:things(),autoAcceptManifold/autoAcceptThing,addThing,broadcastThingEvent,addEventSequence/removeEventSequence
These rulesets have not yet been reviewed for Pico Engine 1.0 compatibility:
⚠️ io.picolabs.notifications.krl⚠️ io.picolabs.prowl_notifications.krl⚠️ io.picolabs.twilio_notifications.krl⚠️ io.picolabs.manifold.email_notifications.krl⚠️ io.picolabs.manifold.text_message_notifications⚠️ io.picolabs.manifold.text_messenger.krl⚠️ io.picolabs.manifold.pico_mailer.krl⚠️ io.picolabs.manifold.disk_space_monitor.krl⚠️ io.picolabs.google_signin.krl⚠️ io.picolabs.github_signin.krl⚠️ io.picolabs.alexa.krl⚠️ io.picolabs.google_assistant.krl⚠️ io.picolabs.weather.krl⚠️ io.picolabs.manifold_import.krl⚠️ io.github.picolab.manifold_disk.krl⚠️ io.picolabs.neighborhood_temps
- Start your pico engine with the root pico as the top-level parent.
- Install
io.picolabs.manifold_bootstrapon the root pico. - Query
getBootstrapStatus()on the root pico's bootstrap channel to get the ECIs for the tag registry and owner pico.
Three-part initialization sequence:
- Tag registry pico — Create a child of the root pico; install
io.picolabs.new_tag_registry. Note theregistrationchannel ECI. - Owner pico — Create a child of the root pico; install
io.picolabs.profileandio.picolabs.manifold_owner. This automatically creates the Manifold child pico and installsio.picolabs.manifold_pico. - Tag server registration — Raise
manifold:new_tag_serverwith the tag registry'sregistrationECI to the owner pico before creating any things.
Root Pico
├─ Tag Registry Pico → io.picolabs.new_tag_registry
└─ Owner Pico → io.picolabs.profile + io.picolabs.manifold_owner
└─ Manifold Pico → io.picolabs.manifold_pico (auto-installed)
| Ruleset | Installed On | Purpose |
|---|---|---|
io.picolabs.manifold_bootstrap |
Root pico | Automates full bootstrap |
io.picolabs.manifold_owner |
Owner pico | Manages Manifold child pico |
io.picolabs.manifold_pico |
Manifold pico | Thing/community management |
io.picolabs.thing |
Thing picos | Base thing behavior |
io.picolabs.community |
Community picos | Base community behavior |
io.picolabs.profile |
Owner pico | User profile management |
io.picolabs.new_tag_registry |
Tag registry pico | Tag registry |
All rulesets depend on standard pico engine modules provided by the engine itself:
io.picolabs.wrangler— pico managementio.picolabs.subscription— subscription management
After bootstrapping, access functionality via:
- Sky Cloud queries:
GET /sky/cloud/{eci}/{ruleset}/{function} - Sky Events:
POST /sky/event/{eci}/{eid}/{domain}/{type}
- All rulesets use the
.krlextension (some legacy files omit it but are valid KRL) - Ruleset IDs match the filename (e.g.,
io.picolabs.manifold_owner.krl→ RIDio.picolabs.manifold_owner)
When contributing KRL rulesets:
- Follow KRL best practices
- Document dependencies in the
metasection - Note Pico Engine version compatibility
For more information about KRL and Pico Labs, visit picolabs.io.