Narayan Narayan! Speak once, and I shall carry your word across all three worlds.
Like the divine messenger Narad Muni who travels across Devalok, Prithvilok, and Patallok carrying sacred word — this tool takes a single voice recording and delivers formatted daily updates to Slack, Microsoft Teams, and Jira work logs.
Record once, publish everywhere.
Download the App · View Releases · Report Issue
Founded by Ajay Kumar
Speak AI Oracle Preview Publish
─────────── ──▶ ─────────────── ──▶ ─────────────── ──▶ ───────────────
Record your Deepgram + AI Edit per-platform Slack, Teams,
daily standup extract tasks, formatted output Jira — all at
naturally times, blockers with toggles once
- Invoke — Record audio or type your daily update
- Oracle — AI extracts tasks, blockers, time entries and formats output for each platform
- Preview — Tabbed view (Slack / Teams / Jira) with editable content and per-platform toggles
- Deliver — One click sends your updates to all enabled platforms simultaneously
Download and install Narad Muni from the landing page, then follow the steps below to configure each service.
All configuration happens inside the app on the Settings page. No .env files or config files to edit manually.
- Open Narad Muni
- Click Sign in with Google
- Default configurations are created automatically on first login
Deepgram converts your voice recordings to text. Required if you want to use voice input.
- Go to console.deepgram.com and create an account
- Navigate to API Keys and create a new key
- Copy the API key
- In Narad Muni, go to Settings → Divine Oracle
- Paste the key into the Deepgram API Key field
- Click Inscribe to save
Without this key, voice recording won't work. You can still type updates manually.
The AI provider parses your transcript into structured tasks, time entries, and formatted outputs. Choose one of the four options:
- Uses the Claude Code CLI installed on your machine
- No API key required — just make sure Claude CLI is installed
- This is the default, no changes needed
- Uses Cursor editor's built-in Claude integration
- No API key required — just make sure Cursor is installed
- Select Local Cursor in Settings → Divine Oracle
- Go to console.anthropic.com/settings/keys
- Create a new API key (starts with
sk-ant-...) - In Narad Muni, go to Settings → Divine Oracle
- Select Claude API as the provider
- Paste the key into the Anthropic API Key field
- Click Test Connection with Oracle to verify
- Click Inscribe to save
- Go to aistudio.google.com/apikey
- Create a new API key (starts with
AIza...) - In Narad Muni, go to Settings → Divine Oracle
- Select Gemini as the provider
- Paste the key into the Gemini API Key field
- Click Test Connection with Oracle to verify
- Click Inscribe to save
Go to Settings → Slack Portal in the app. Slack supports two delivery modes:
Posts your update as a standalone message in a channel.
- Go to api.slack.com/apps and create a new app (or select existing)
- Click Incoming Webhooks in the sidebar and toggle it on
- Click Add New Webhook to Workspace and select a channel
- Copy the webhook URL (format:
https://hooks.slack.com/services/...) - In the app, make sure Thread Reply Mode is turned off
- Paste the webhook URL into the Webhook URL field
- (Optional) Enter your Display Name and Slack User ID (for @mentions)
- (Optional) Enter Team Lead Name and Team Lead ID for blocker notifications
- Click Inscribe to save
How to find your Slack User ID: Click your profile picture in Slack → Profile → click the three dots (⋯) → Copy member ID
Replies to a daily workflow/bot message as a thread — keeps the channel clean.
- Go to api.slack.com/apps and create a new app
- Go to OAuth & Permissions and add these scopes:
channels:history— to find the workflow messagechat:write— to post replies
- Click Install to Workspace and authorize
- Copy the Bot User OAuth Token (starts with
xoxb-...) - Invite the bot to your channel: type
/invite @YourBotNamein the channel - Get the Channel ID: right-click the channel name → View channel details → copy the ID at the bottom (starts with
C) - In the app, turn on Thread Reply Mode
- Paste the Bot Token, Channel ID, and select the Workflow Time (when your workflow message posts)
- (Optional) Set Thread Match Text if your workflow message text differs from "Daily Status Update"
- Click Inscribe to save
The app searches a 10-minute window around the workflow time to find the right thread.
Go to Settings → Teams Portal in the app. Teams webhooks are created using Workflows (the old Connectors method is deprecated). This works for both channels and group chats.
- In Microsoft Teams, click the three dots (⋯) next to the channel or group chat name
- Select Workflows
- Choose a webhook template based on where you want to post:
- Channel: "Send webhook alerts to a channel"
- Group Chat: "Send webhook alerts to a chat"
- Give the workflow a name (e.g., "Narad Muni")
- Authenticate with your Microsoft account when prompted
- Confirm the destination (channel or chat) and click Add workflow
- Copy the webhook URL from the confirmation dialog
If the templates aren't available, create one manually:
- Click View more apps (⋯) on the left sidebar in Teams → open Workflows
- Go to the Create tab and click Create from blank
- Search for the trigger "When a Teams webhook request is received" and select it
- Set authentication to Anyone (simplest option)
- Click New step → select "Post card in chat or channel"
- In the Post in dropdown, choose Channel or Group Chat, then select the destination
- Click Save, then go back to the trigger step and copy the HTTP POST URL
- Paste the webhook URL into the Webhook URL field in Settings → Teams Portal
- Enter your Display Name and User ID (for @mentions in the Adaptive Card)
- (Optional) Enter Team Lead Name and Team Lead ID for blocker notifications
- Click Inscribe to save
Note: The group chat webhook template may not be available in all organization types. Contact your IT admin if you don't see it. Microsoft's webhook guide has more details.
Go to Settings → Jira Chronicle Portal in the app.
- Go to id.atlassian.com/manage-profile/security/api-tokens
- Click Create API token, give it a label (e.g., "Narad Muni"), and copy the token
- In the app, fill in:
- Base URL — Your Jira instance URL (e.g.,
https://mycompany.atlassian.net) - Email — The email associated with your Jira account
- API Token — The token you just created
- Project Key — Your project key (e.g.,
PROJ). Find it in Jira under Project Settings → Details - Timezone — Select your timezone (used for work log timestamps)
- Base URL — Your Jira instance URL (e.g.,
- Click Test Jira Connection to verify your credentials
- Click Inscribe to save
Set up daily recurring work log entries that are auto-injected into every day's time log. Great for daily standups, EOD syncs, or other regular meetings.
- In the Jira Chronicle Portal, scroll to Recurring Rituals
- Click Add Entry and fill in:
- Ticket ID — Jira issue key (e.g.,
PROJ-846) - Hours — Duration in 30-minute increments (minimum 30 minutes)
- Start Time — When this entry starts (e.g.,
10:00) - Comment — Description (e.g., "Team standup and sprint planning")
- Ticket ID — Jira issue key (e.g.,
- Add as many recurring entries as needed
- Click Inscribe to save
The AI automatically merges recurring entries with your transcript-derived entries and scales times to meet the 8-hour minimum work day.
Set up daily reminders so you never miss logging your standup.
- Go to Settings → scroll to notification settings
- Enable notifications
- Set your preferred reminder time (e.g., 10:00 AM)
- Select which days to receive reminders (defaults to weekdays)
- Open Narad Muni and click a date on the calendar
- Record your standup (or type it manually)
- Wait for the AI to process your transcript
- Preview the formatted outputs for each platform (Slack, Teams, Jira)
- Edit any output if needed, toggle platforms on/off
- Click Share All to publish everywhere at once
- Check the results — green checkmarks confirm delivery
Narad Muni ships an MCP (Model Context Protocol) server that lets AI coding assistants log completed work directly into your daily draft — without leaving the editor.
How it works: Your AI assistant calls log_work → entry is saved to the day's draft → you open Narad Muni later to preview and publish as usual.
The desktop app auto-registers with Claude Code on every launch. No manual setup needed — just install the app, open it once, and the MCP server is ready.
You can verify the registration in Settings → Divine Messenger Protocol.
Then you can say things like:
- "Log that I finished the auth refactor on PROJ-123"
- "Log work: Fixed flaky tests in CI pipeline"
Add the server to your MCP client config (e.g., ~/.cursor/mcp.json):
{
"mcpServers": {
"narada": {
"type": "stdio",
"command": "/Applications/Narad Muni.app/Contents/MacOS/Narad Muni",
"args": ["--mcp"]
}
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
message |
string | Yes | What you worked on — "Implemented user auth flow" |
ticket |
string | No | Jira ticket key — "PROJ-123" |
date |
string | No | YYYY-MM-DD format, defaults to today |
For contributors working from the source repo.
- Node.js 18+
- npm
npm install
npm run electron:dev # Start Electron + Next.js in dev modenpm run dev # Next.js dev server only
npm run build # Production build
npm run lint # ESLint
npm run electron:dev # Dev mode (Next.js + Electron)
npm run electron:build # Production build + package
npm run mcp:compile # Build the MCP serverThe release workflow requires a FIREBASE_SA_JSON repository secret — the base64-encoded Firebase service account JSON.
# Generate the value:
base64 < firebase-service-account.json | pbcopy # macOSAdd it as a GitHub Actions secret under Settings → Secrets and variables → Actions.
Built with devotion at nonstop.io
Narayan Narayan!