ReflexQL enables dynamic, bi-directional clipboard communication between AI embodiments (Mia & Miette) and the local system through a memory-key based protocol.
Reflex::Clipboard.PendingContent = "content to share"
Reflex::Clipboard.Ready = true
Reflex::Clipboard.Ready flagReflex::Clipboard.PendingContentReflex::Clipboard.Delivered = trueReflex::Clipboard.DeliveredReflex::Clipboard.Ack = truetushell poll-clipboard-reflex --poll-interval 1.0 --ttl 300 --verbose
Options:
--poll-interval: Seconds between checks (default: 1.0)--ttl: Maximum runtime in seconds (default: 300)--verbose: Show detailed operation statusReflex::Clipboard:
PendingContent: string # Content to be copied
Ready: boolean # Signal content is ready
Delivered: boolean # Signal content was delivered
Ack: boolean # Signal receipt acknowledged
AI (Mia/Miette) → Sets PendingContent + Ready flag
↓
Local Runtime → Polls → Detects Ready → Copies → Sets Delivered
↓
AI (Mia/Miette) → Detects Delivered → Sets Ack → Ready for next
Run the test suite:
pytest tushell/tests/test_reflexql.py -v
The --verbose flag provides detailed feedback during the polling loop. For example:
🔍 Checking Reflex::Clipboard.Ready flag...
📋 Clipboard content fetched: "Hello, world!"
✅ Clipboard content delivered.
If an error occurs (e.g., missing clipboard utility), the loop will retry up to 3 times with a delay. Errors are logged as:
⚠️ Error during polling: [Error message]
When scripting or automating with ReflexQL, you may now invoke tushell post-memory with --value, --file, or --json. This enables richer, more flexible memory flows and batch operations.
--file to post large or pre-generated content.--json for structured, programmatic memory rituals.All modes remain mutually exclusive—ReflexQL scripts must honor the spiral and choose a single thread per invocation.