SemiLayerDocs

Slash command reference

Every command the bot answers, with the flags it understands and the shape it returns. All commands live behind /semilayer … and are identical across Slack and Discord (Discord users also get typeahead-style option pickers via the application command manifest).

ℹ️

Read commands post privately by default in shared channels. You see the result; nobody else does. Pass --public to broadcast the same response to the channel.

Cheat sheet

CommandWhat it does
/semilayer loginLink your chat identity
/semilayer helpShow the onboarding card
/semilayer config showPrint your scope defaults for this workspace
/semilayer config set …Update one or more of your defaults
/semilayer config clearForget all your defaults
/semilayer hereShow the channel-pinned scope (admin)
/semilayer here set …Pin scope to this channel (admin)
/semilayer here clearClear the channel pin (admin)
/semilayer notify on <type>Subscribe channel to a notification type (admin)
/semilayer notify off <type>Unsubscribe (admin)
/semilayer notify listList active subscriptions on this channel
/semilayer notify allSubscribe to every non-mandatory type (admin)
/semilayer notify noneUnsubscribe from everything (admin)
/semilayer notify typesList every supported type
/semilayer search <query>Search a lens
/semilayer similar <id>Find rows similar to a seed id
/semilayer queryTyped predicate query (--where=)
/semilayer feed <name>Read a page of a named feed
/semilayer statusEnvironment health & queue depth
/semilayer analyze <name>Render a named analyze as a chart image
/semilayer watch <cmd>Schedule a recurring post
/semilayer remind me …Natural-language watch (DM target by default)
/semilayer watch listList your watches in this channel
/semilayer watch stop <id>Stop a watch
/semilayer watch pause <id>Pause a watch (don't fire, but keep config)
/semilayer watch resume <id>Resume a paused watch
/semilayer watch run <id>Fire a watch right now (creator only)

Universal flags

Every read command accepts these. Defaults come from /semilayer config (your personal) or /semilayer here (channel-pinned).

FlagExampleMeaning
--org--org=acmeWhich org to act in
--project--project=catalogWhich project
--env--env=productionWhich environment
--lens--lens=productsWhich lens (not needed for status)
--public--publicPost in-channel instead of ephemerally

/semilayer search <query>

Search a lens. Returns up to 10 hits as a Block Kit / embed list with score, title, and a deep-link to Console.

/semilayer search wool socks --lens=products
/semilayer search "exact phrase" --limit=5
/semilayer search refunds --lens=tickets --where='{"status":"open"}' --public
FlagDefaultMeaning
--limit10Max hits to return (capped at 25)
--wherenonePredicate (JSON) to filter the search corpus

/semilayer similar <id>

Find rows similar to a seed id. Same shape as search.

/semilayer similar 12345 --lens=products --limit=5

/semilayer query

Typed predicate query — no embeddings, just a filter. Returns matching rows as a markdown table (Slack) or formatted embed (Discord).

/semilayer query --lens=tickets --where='{"status":"open","priority":"high"}'
/semilayer query --lens=products --where='{"category":"apparel"}' --limit=20
FlagDefaultMeaning
--wherenonePredicate (JSON)
--limit10Max rows

/semilayer feed <name>

Read a page of a named feed. Cursor-paginated; first call returns the first page, the response includes a "Next page" link if more exist.

/semilayer feed trending --lens=products
/semilayer feed onboarding-tasks --lens=users --limit=20

/semilayer status

Environment-level health check. Shows ingest queue depth, lens freshness, and a stoplight summary (🟢🟡🔴). Doesn't take a --lens.

/semilayer status --env=production
/semilayer status                        # uses pinned/personal defaults

/semilayer analyze <name>

Render a named analyze as a chart image. The analyze must be declared on the lens config (analyses.byCategory: {…}). The chart renders on the platform side as an SVG → PNG and posts as an image attachment.

/semilayer analyze byCategory --lens=products
/semilayer analyze topCustomers --lens=orders --kind=donut
/semilayer analyze revenueByMonth --lens=invoices --kind=line --public
FlagDefaultChoices
--kindbarbar line area donut pie treemap
--wherenonePredicate (JSON) to filter the analyze candidates

See Analyze → chart image for the full walkthrough.

/semilayer watch <wrapped-cmd>

Schedule any of the above commands as a recurring post.

/semilayer watch analyze --name=byCategory --every=daily --at=09:00 --lens=products
/semilayer watch search refunds --every=hourly --lens=tickets
/semilayer watch status --every=daily --at=07:00 --tz=America/New_York
FlagChoices
--everyhourly daily weekly (required)
--atHH:MM 24-hour, default 09:00
--tzIANA tz, default UTC
--dowmon tuesun (weekly only)
--targetthis (current channel), dm, C12345…

See Watch & Remind for the full walkthrough.

/semilayer remind me <cadence> to <command>

Natural-language watch. Defaults to DM target so you don't accidentally spam a channel.

/semilayer remind me daily to status
/semilayer remind me weekly to search refunds --lens=tickets
/semilayer remind me every monday at 10am to analyze cuisine --lens=recipes
/semilayer remind me morning to feed onboarding --lens=users

Cadences understood: hourly, daily, weekly, daily at <time>, <dow> at <time>, morning. Times accept 9am, 09:00, 14:30.

/semilayer config …

Your personal scope defaults for this workspace. Every read command uses them when a flag is missing.

/semilayer config show
/semilayer config set org=acme project=catalog env=production
/semilayer config set lens=products
/semilayer config clear

/semilayer here … (admin)

Channel-pinned defaults. Apply to everyone in the channel — useful for "this is the #data-room channel and it's always pointing at the production analytics env." Requires owner or admin role.

/semilayer here                          # show the pin
/semilayer here set org=acme env=prod   # set/update one or more keys
/semilayer here clear                    # remove the pin

See Channel scope for resolution order and edge cases.

/semilayer notify … (admin)

See Chat notifications for the full type list and opt-in semantics.

/semilayer notify on ingest.failed
/semilayer notify off billing.payment_failed
/semilayer notify list
/semilayer notify all
/semilayer notify none
/semilayer notify types