docs
Getting Started

Use nima in Slack

How to work with nima's Slack assistant: mentions and DMs, who it answers, what it can do from a thread, its limits, and every command you can type.

nima's Slack assistant answers questions about your product from your workspace's own record: the knowledge graph, signals, beacons, specs and code. You talk to it by mentioning @nima or sending it a direct message. This page is the canonical reference for that behaviour and for every command you can type in Slack. Installing the Slack app, its scopes and per-channel ingestion settings live on the Slack integration page.

Mention and DM answers are on for every workspace once Slack is connected. Reminders are on for everyone with a linked Slack account. Watches are off until a workspace owner or admin sets triggersEnabled, and brokered questions (an outbound action) are off until one sets dispatchEnabled, both on PATCH /organizations/settings with a signed-in session, or you ask the nima team. Hosted agent VMs, which agent checks and agent task need, are enabled by the nima team on request. Each section below says which applies. See What is on in your workspace.

Mention nima or send it a DM

nima answers when a message mentions @nima anywhere in its text, when you send it any direct message (including the side-by-side assistant view), or when you reply in a thread nima already answered and the reply mentions nobody else. The answer is posted in the thread.

Engagement with a thread lasts 24 hours of idle time and is refreshed every time nima answers. After 24 quiet hours, mention @nima again. A reply that mentions another person is ignored, so mention @nima too if you want an answer.

A thread that hosts an agent operation stays conversational without the 24-hour clock; see Starting agent work from Slack. Message edits, deletions and messages from bots never trigger an answer. Each person in a thread gets their own conversation memory, so two people asking in one thread do not see each other's earlier questions.

Who nima answers in Slack: linked workspace members

nima answers only Slack users it can match to a member of your nima workspace. It matches by the email on the person's Slack profile: for everyone when Slack is installed, when someone joins Slack, and on demand when an unlinked person mentions nima. A match needs a nima account with that email that is a live member of this workspace.

Someone who cannot be matched gets this notice:

:wave: I only answer members of this nima workspace, and I could not match your Slack account to one. Sign in to nima with the email on your Slack profile — or ask an admin to invite you — then mention me again.

Follow-ups from an unlinked person in a thread that were not addressed to nima are ignored without a reply. Slack Connect guests and other outsiders are not workspace members, so they get the notice and nothing more.

The turn runs as the person who asked, with their permissions. A mention is not authorization: nima checks the link before it counts the message against a thread's allowance or runs anything.

What the Slack assistant can look up

The Slack assistant reads the knowledge graph, signals, beacons, specs, your code, nima's own documentation, reminders, watches and agent operations. It checks each source with the asker's permissions.

SourceWhat it does
Knowledge graphWhy a decision was made, who asked for something, what contradicts what.
SignalsRaw evidence in the reporter's words.
Beacons and specsRanked evidence, spec contents, open questions.
CodeGrep, file reads, symbols, module context and git activity. On harder questions it also searches the code index for a focused repository.
nima docsReads docs.getnima.io, so "how do I do X in nima" is answered from these pages.
RemindersSchedules a one-time message to your own DM.
WatchesCreates and pauses watches, when your workspace has turned watches on.
Agent operationsLists, starts, messages and cancels operations.

Answers are read-only apart from reminders, watches, agent operations, brokered questions and saving your time zone. nima cannot promote a beacon or edit a spec from Slack.

Answers that read your sources end with a footer such as _Checked: knowledge graph · signals · code search · docs_. The footer names the sources nima actually read: knowledge graph, signals, code search, code files, docs, beacons, specs and web. It leaves out actions such as scheduling a reminder or starting an operation, so a missing footer means nima read none of those sources. Do not count on web search being available.

Slack assistant limits

The Slack assistant handles up to 49 answered messages per thread, 300 seconds per answer, and about 39,000 characters per reply. The 50th message posts a notice instead of an answer, and nima then goes silent in that thread.

LimitValue
Messages per thread50 counted. The 50th posts ":lock: This thread has reached my 50-message limit, so I will stop replying here. Start a new thread and mention me to keep going." Later mentions are dropped. A failed or suppressed turn is refunded.
Time per answer300 seconds.
Reply lengthClipped at 39,000 characters.
Failure text":warning: I could not finish that one — something went wrong on my side. Mention me again in a moment and I will retry."
ConcurrencyReplies from all workspaces are processed one at a time, so busy moments delay answers.
Silent channelsA channel set to silent (while the channel is on in the admin panel) gets no answers, no acknowledgements and no thinking indicator.

Start a new thread and mention @nima when you hit the cap. nima turns @channel, @here and @everyone in its own answers into plain text, so an answer never pings a channel.

Attachments nima reads in a mention or DM

nima reads up to 3 files per message, 10 MiB each and 12 MiB in total, with at most one audio recording. Extra files are skipped with a note.

  • Read natively: images (PNG, JPEG, WebP, HEIC, HEIF), audio, video and PDF.
  • Read as text, up to 40,000 characters: plain text, CSV, Markdown, JSON and XML.
  • Anything else: nima tells you it could not read the file and asks for a supported format.

nima checks images, audio, video and PDF by their bytes, not the type Slack reports, and rejects a text file that turns out to be HTML or binary, so a renamed file or an HTML sign-in page is not read. If a download fails, nima asks you to re-upload or check that the Slack app has the files:read scope. A mention with only files and no text is treated as "Describe or summarize the attached files."

The thinking indicator and the eyes reaction

While nima works on an answer it shows progress in one of three ways, tried in this order: a Slack agent-session "processing" status on the thread; in DMs, an "is thinking..." status with rotating messages, which then updates as nima works (for example "is reading foo.ts..."); otherwise an hourglass reaction on your message. The eyes reaction on your message stays until the answer lands, then comes down.

For messages that look like work requests, such as "run the checks" or "investigate this bug", nima first posts a one-line acknowledgement and edits it into the final answer. The acknowledgement only sets expectations; it authorizes nothing.

Times and time zones in Slack answers

nima states times in your time zone, chosen in this order: the zone in the request, a zone nima saved when you told it yours, your Slack profile zone, then UTC. When it falls back to UTC it labels the zone as unknown. Tell nima once ("my time zone is Europe/Berlin") and it remembers.

Reminders from Slack

Ask nima for a reminder in plain words, such as "remind me tomorrow at 9 to check the release", and it sends you a one-time message in your own Slack DM. If you gave no clock time it asks for one, and unless you named a time zone it confirms the one it would use before it schedules. Reminders need your Slack account linked to your nima account and are on for every workspace. A reminder must be in the future and no more than 366 days out. The full reference is in Watches and reminders.

Watching things from Slack: bell reaction and stop

Watches work in Slack only after a workspace owner or admin turns watches on, or you ask the nima team. Until then the bell reactions and stop do nothing. The setting is triggersEnabled on PATCH /organizations/settings, which needs a signed-in owner or admin session; the admin panel has no control for it.

When watches are on:

  • Add the bell reaction (:bell:) to a message nima filed as a signal, and you follow that signal: nima DMs you when it changes.
  • Add :no_bell: to pause that watch.
  • DM nima stop (also mute, stop all, unwatch everything) to pause all of your watches. nima replies "Paused your N watches. nima won't DM you about them again." or "You have no active watches, so there was nothing to pause."

nima sends at most 3 interrupting DMs per person per local day and folds the rest into a digest at 09:00 local time. Every watch DM ends with "Reply stop to pause all your watches." The bell is ignored in a paused channel, on channels shared with another organization, and on messages with no signal. See Watches and reminders for the rules.

Ask a teammate from Slack through nima

nima can ask a teammate a question on your behalf, but only when outbound actions are on for the workspace. That is off until an owner or admin sets dispatchEnabled through PATCH /organizations/settings, or you ask the nima team.

When it is on, mention a teammate or name a spec or ticket and ask nima to check with its owner. nima posts an approval card in your thread with Approve, Edit and Discard. Nothing reaches the teammate until you approve. Edit asks you to reply with new wording; your next reply proposes a fresh card. The teammate answers by replying in their DM, and nima passes the answer back to you. Approval lapses after 24 hours. Brokered questions start only from Slack, never from an API key or MCP. See Outbound actions.

Starting agent work from Slack: agent spec, agent checks, agent task

Start a message with @nima agent ..., or DM nima a message that starts with agent, to start an agent operation on a repository. The @nima mention must come first in the message. agent checks and agent task run on a hosted VM, which the nima team enables on request. A workspace without hosted VMs gets a refusal that only you can see. agent spec works without hosted VMs: nima hands the spec to your team's own coding agent, which picks it up over MCP (see Operation tools). With hosted VMs turned on, the workspace's default target decides where it runs.

CommandStarts
agent spec <document-id> [repository-id]An implement_spec operation for a spec. The spec must be approved or in progress.
agent checks <repository-id> <branch>A run_checks operation on a branch.
agent task <repository-id> [base:<branch>] <instruction>A report-only task: no pull request is opened.

Ids are UUIDs, and the whole message is at most 1000 characters. Anything else that starts with agent returns a usage line. Errors such as an unknown repository, a closed gate or a spent budget come back as a message only you can see.

nima keeps one status message in the thread and edits it in place, and posts exactly one result reply that mentions you. Follow up or ask for a cancel by replying in the thread. The Slack assistant handles the reply, so plain words such as "cancel that" work, and it asks you which operation when that is ambiguous. Only the person who started an operation can check it, send it new instructions or cancel it through nima in Slack; for anyone else, nima reports that it cannot find the operation. A silent channel or an unlinked user makes the command do nothing. See Agent operations.

Admin commands: /nima mcp-key and /nima github-writer

Workspace owners and admins can type /nima <command> or mention @nima <command> to mint a headless API key or manage GitHub publishing. Anyone else gets "Only a currently linked nima workspace owner or admin can manage publishing or headless credentials." Replies are visible only to you.

CommandDoes
mcp-key operationsCreates a 30-day key with operations:write, documents:read and knowledge:read.
mcp-key integrationsCreates a 30-day key with only integrations:write.
mcp-key listLists your own active keys: id, name, scopes, expiry.
mcp-key revoke <key-id>Revokes one of your keys.
github-writer statusShows the GitHub publishing consent.
github-writer installReturns the GitHub App install link.
github-writer enable, disable, disconnectChanges the publishing consent. Publishing stays off after connecting until you enable it.

Commands that change something reply with a Confirm button. Click it, or send @nima confirm <nonce> in the same channel as the same person within 5 minutes. A new key is shown once, in a message only you can see. Copy it then; if delivery fails nima revokes the key. Creating a key never turns on compute or publishing. Key handling is documented on Authentication. No other commands exist: /nima cannot search or edit specs.

Is every Slack message a signal?

Yes, in most cases: messages in any channel the nima bot is in, and DMs to the bot, become signals whether or not you mention nima. Mentioning nima is what asks it a question, and it is separate from capture. nima's extraction dismisses noise afterwards. Only new messages after the bot joins are read; nothing is back-filled. Setting a channel to silent stops what nima says there, not what it reads. Pausing a channel in the admin panel stops neither: nima still reads the channel and still answers mentions in it, and silent mode applies only while the channel is on. Removing the bot from the channel stops reading. See the Slack integration page for channels and ingestion.

On this page