Skip to content

Intent,
executed.

Mintis is the toolset for neuro device developers: one deliberate signal in, one confirmed action out.

Fig. 1 Signal resolving into one action
01 Toolset

Make your board do something tonight.

Or ship a device that comes with connectors on day one. Mintis takes on the work you would otherwise staff forever: OAuth for every provider, a security review, connectors that break when providers change, a trigger that must not fire while you read. You work on your own application.

Three parts: a directory of connectors your device can drive, tools that turn its signal into deliberate triggers, and hosted execution between the two. The first is live; the second is next.

Tinkerer

One sitting. A board you already own and a trigger your code already detects. Sign up free, register the board, ask for the API reference, and the trigger switches a relay or sends a set message.

Lab

For a demo or a study. Your device drives real actions from the detector you already have. Participants’ triggers do real things, every run is on record, and raw signal never leaves the machine. Free while you research.

Maker

At release. Ship with reviewed connectors behind one API, hosted credentials and OAuth, a kill switch and a record you did not have to build. Paid per active device once you ship.

02 Registry

What one trigger reaches today.

Register a device and these are actions it can call, each with the confirmation it costs. Each connector is one signed, reviewed document; Mintis wrote the first ones, and early publishers go through the same review, by email.

Table 1 Actions in the live registry, October 2026, ordered by consequence

  1. 01The weather now Open-MeteoAnswers
  2. 02Find a radio station Radio BrowserAnswers
  3. 03Read today’s tasks TodoistAnswers
  4. 04Are the curtains open SwitchBotAnswers
  5. 05Translate a set phrase DeepLAsks once
  6. 06Turn a light on or off LIFXAsks once
  7. 07Switch a wall relay ShellyAsks once
  8. 08Open the curtains SwitchBotAsks once
  9. 09Message a chosen person TelegramAsks twice
  10. 10Send a text message TwilioAsks twice
  11. 11Post to a channel DiscordAsks twice
  12. 12Push a notification ntfyAsks twice
  13. 13Run an applet IFTTTAsks twice
  14. 14Press a physical button SwitchBotAsks twice

One API, a public directory. The registry answers at api.mintis.cloud; the directory is public and sign-up is free. A few connectors still wait on a provider’s review or on the host; one, Shelly, is checked end to end on a real account. One, DummyJSON, needs no provider account: a public sandbox for the first call. Keys and tokens never reach your device, and revoking a device’s token stops the registry answering it. No host app yet: your own code calls the API with the device token, and the API reference is on request.

03 Operation

From a blink to a relay.

One worked example with what exists today, the first call in code, then the four steps the registry runs for your code.

Listing 1 One sitting, end to end, with what exists today

  1. 01

    Board

    An OpenBCI, Muse or Neurosity board, read by your own code through BrainFlow or the vendor’s SDK. Nothing of ours runs on the board.

  2. 02

    Trigger

    Your detector fires on a deliberate gesture: a triple blink, a left-right-left sweep, a jaw clench. Until the core ships, the detector is yours.

  3. 03

    Device

    Sign up free and register the device; its token is shown once. No board yet? Ask for a test device: the same path, with no hardware behind it.

  4. 04

    Connector

    Connect a provider on your account, such as a Shelly key or your own Telegram bot. For a first run, DummyJSON needs no account at all.

  5. 05

    Call

    On the trigger, POST /api/v1/executions with the device token, the connector’s directive, the action’s vector and its arguments, and an Idempotency-Key header for anything that asks: every write, and a POST that only reads. A write asks first: your code announces it and sends only when the trigger repeats.

  6. 06

    Result

    The relay switches, or DummyJSON answers with a quote. Send it twice by mistake and it runs once; the run is on your devices page.

Today your code is the host and owns the confirmation; next, the open core does both. The API reference is on request.

Listing 2 The first call, against the demo connector, and what comes back

POST https://api.mintis.cloud/api/v1/executions
Authorization: Bearer <device token>
Content-Type: application/json

{
  "directive": "dummyjson",
  "vector": "quotes",
  "args": { "limit": 1 }
}
{
  "status": "succeeded",
  "directive": "dummyjson",
  "vector": "quotes",
  "executed_by": "registry",
  "latency_ms": 212,
  "summary": "Rumi: Your heart is the size of an ocean. …",
  "items": [
    { "title": "Your heart is the size of an ocean. …",
      "subtitle": "Rumi" }
  ],
  "…": "…"
}
Register

Your device gets a token. Sign up free and register the device. No board yet? Ask for a test device: the same path, with no hardware behind it.

Trigger

Your trigger fires. One discrete event: it fires or it does not. Your code, the host for now, runs the action bound to it or steps through choices with it, so one trigger is enough.

Confirm

Writes ask once. Deletes and messages ask twice. Built for an input that is noisy and hands-free, with no keyboard to undo a mistake. An ask is announced and runs only when the trigger repeats, and times out to cancel. A burst freezes the device.

Execute

It runs once, on the record. A double fire replays, never posts twice. Every run is written down: the action, its signed version, what it asked, what came back.

  1. 2a Frame closes

  2. 2b Arms land

  3. 2c Armed

  4. 2d Executed

Fig. 2 The four states of an action. Unlit cells have not happened yet.

04 Decoding

See the signal. Keep the triggers that hold.

Step two, not yet released: a console for live signal, recording and replay through the production detectors, and a core every host is built on. Bring raw signal or your own triggers; each is replayed and kept only if it never fires on its own. The method is below, and a lab can run it on its own gestures now.

Table 2 Decoding characteristics, source profile 0.1
ParameterValueStatus
Raw signal inDecoded on the hostBuilt
TransportBrainFlow boardsBuilt
DecoderOn the host, never the board. Retrain without a reflashBuilt
ReplayRecorded sessions through the production detectorsBuilt
Raw signalStays on your machine, never sent to the registryBuilt
ConsoleLive signal through the production detectors, on our bench. Not yet releasedBuilt
Reference rigOpenBCI Cyton, two EOG channels, 250 HzBuilt
Triggers inDecoded on your side, delivered as eventsSpecified
Other transportsBluetooth LE (GATT), vendor SDK, HIDSpecified
Your deviceOne source profile: signal, triggers, evidenceSpecified
Trigger namesOne gesture, one name, on every deviceSpecified
Qualified byHit rate, and fire rate at rest and while readingSpecified
Fire-rate targetAt most 0.01 per minuteSpecified
EvidenceHeld out by whole session, never by trialSpecified
UnqualifiedShown in developer mode, never boundSpecified
Works with MintisCertification of a device and the host it ships withSpecified
RecordingA Lab Streaming Layer outlet on the hostPlanned
LicenceCore and console open, under a permissive licencePlanned

Built runs in the console on our bench and is not yet released. Specified is in the source profile specification, not yet in code. Planned is in neither.

Table 3 Qualification, worked on our bench rig1
CandidateRestReading
Triple blinkKeptSilentSilent
Left-right-left sweep3KeptSilentSilent
Double blink2DroppedSilentFires
  1. 1

    Candidates are recorded in labelled sessions, at rest and during natural reading, and replayed through the production detectors. A gesture that fires when nobody meant it to is never bound, on our rig or on yours. The rig has shown enough to drop a gesture, not yet to qualify one: held-out sessions are next.

  2. 2

    The plan said double blinks were rare. People blink twice about three times a minute while reading, so it was dropped.

  3. 3

    Kept, with an open question: a line change while reading makes a right-left-right the detector can confuse with the sweep. Unsolved.

05 Position

You build input. Mintis builds what follows.

Everyone else builds input too, or a closed app for one device. Mintis is the layer between your device and the world. It takes whatever input exists, so a new signal changes the decoder, not the platform.

Table 4 A neuro device’s stack, and where Mintis sits
TodayMintis
HardwareOpenBCI, Muse, Neurosity, your own boardYours, or any maker’s
AcquisitionBrainFlow, vendor SDKsA source profile, specified
RecordingLab Streaming LayerAn LSL outlet on the host, planned
DecodingMNE, OpenViBE, BCI2000, your own codeStep two: a core and console, open when released
ActionA closed app per device, or a script per demoStep one: the registry
Safety and recordUp to each developerOne model for every device

Table 5 What Mintis is not

  • Not mind reading. It reads deliberate gestures, each made on purpose.
  • Not a medical device. Not CE-marked, no diagnostic or therapeutic claim. A maker who CE-marks a device makes their own claim.
06 Pricing

Free while you prototype. Paid when you ship.

A tinkerer, a lab that only researches and a maker still prototyping pay nothing, whatever their size. A maker that ships pays per active device, for what Mintis runs for each one: execution, credentials, the kill switch and review.

Table 6 Who pays, and for what
WhoWhat they payOffered
Tinkerers, labs, and makers still prototypingNothing. The directory and the hosted registry, within fair-use limits; the tools as they are releasedNow
Makers shipping a productA yearly fee per active device: a registered device that called the hosted registry that yearAt release

Later, and not offered yet: Works with Mintis certification per product and hardware revision, a white-label Mintis app, and devkits built on other makers’ boards. Never for sale: data, a listing, or a place in the directory. No prices are published yet.