The frontier lab alternative that you can control.

MindsHub Agents Cowork Code

Delegate tasks to AI Agents

Research, analyse and build reports or apps with Cowork. Review PRs, fix bugs and ship features in your own repos with Code.

MindsHub Inference Model-Router

Call major models like Kimi K3, GPT-6 Astra or Claude with one key and one bill. Read the docs

general
Q2-Reporting

Build an interactive KPI app the team can explore

Build me an interactive app the team can use to explore our KPIs — MRR, signups, NRR — pulling live from Postgres and Stripe. If something looks off with signups, let us open a Linear ticket and assign it right from the app. Publish it so the team can dig in.
PgPostgreSQLSStripeLLinear
  1. Planned the analysis3 KPIs · live refresh · drill-down by segment
  2. Connected to PostgreSQLvia the credentials vault — no raw key exposed
  3. Queried Stripe for MRR & signups1,204 subscriptions reconciled
  4. Wired up Linear for one-click assignmentissues created straight from flagged rows
  5. Published kpi-app.htmllive, shareable URL

Done — here's your KPI app. MRR is up +9.4% week-over-week to $128.4k. One thing worth a look: signup checkout is erroring for EU accounts — I flagged it below so someone can grab it.

  • MRR, signups, and NRR update live — nothing to re-run.
  • Flagged a signup issue for EU checkout — assign it to a teammate right from the app.
  • Published to a live URL — the team can explore and assign follow-ups without asking you first.
Revenue-Ops

Top customer-feedback themes, ranked by revenue

Combine last month's Gong calls, Zendesk tickets, and HubSpot notes into the top customer-feedback themes — and rank them by revenue impact, not just frequency.
GGongZZendeskHHubSpot
  1. Pulled 42 Gong call transcriptsMay 1 – May 31
  2. Read 318 Zendesk ticketsplus 96 HubSpot deal notes
  3. Clustered into 7 themessemantic grouping + dedupe
  4. Scored each theme by attached ARRcross-referenced HubSpot deals
  5. Wrote the memofeedback-themes.md

Here's the May feedback memo. Ranked by revenue, the #1 theme is onboarding friction — 28 mentions across $214k of ARR, well ahead of where raw frequency would rank it. Pricing confusion and a missing Salesforce sync round out the top three.

  • Every theme links back to the exact calls, tickets, and quotes.
  • I drafted a short product follow-up list at the end of the memo.
general

Extract 38 receipts into a Q2 expense workbook

Extract these 38 receipts from the shared Drive folder and build a categorized Q2 expense workbook with monthly totals. Flag anything that looks like a duplicate.
△Google Drive
  1. Read 38 receipts from Google DriveOCR on PDFs and photos
  2. Normalized vendors & currencies3 currencies → USD
  3. Categorized into 12 bucketssoftware, travel, meals, …
  4. Flagged 2 likely duplicatessame vendor, amount, ±1 day
  5. Built expenses.xlsx3 sheets, formulas intact

Built expenses.xlsx — 38 receipts totaling $24,318 across 12 categories. Software is the biggest line at $9,240. I flagged 2 duplicate charges ($318) for your review on the Summary tab.

  • Each row links to the original receipt in Drive.
  • Monthly totals and category subtotals are live formulas, not pasted values.
general

Daily 7am briefing across Slack, Gmail, Calendar, Linear

Every weekday at 7am, scan Slack, Gmail, my Calendar, and Linear, and give me a priority briefing before my first meeting — what changed overnight and what needs me.
#SlackMGmail31Google CalendarLLinear
  1. Scanned 6 Slack channelsovernight messages + mentions
  2. Triaged 23 new emailsurgent vs. FYI
  3. Read today's calendar5 meetings, 2 need prep
  4. Checked Linear4 issues moved to your review
  5. Scheduled the recurring runweekdays · 7:00 AM

Scheduled ✓ — I'll run this every weekday at 7:00 AM and drop the brief here. Today's headline: 3 things need you before 10am. Acme is waiting on your reply, the pricing doc needs sign-off, and your 9:30 needs 5 minutes of prep (notes attached).

  • Everything links to the source — one click to the Slack thread or email.
  • You can change the cadence or what it scans anytime in Scheduled Tasks.
general

Size the US SMB-analytics market and compare vendors

Size the US SMB analytics market, compare the top vendors by price and ICP, and build me a shareable briefing I can send to the team.
BQBigQuery
  1. Researched 14 market sourcesreports, filings, pricing pages
  2. Modeled TAM / SAM / SOMbottoms-up by segment
  3. Compared 8 vendorsprice, ICP, and gaps
  4. Compiled a sourced appendixevery number cited
  5. Built market-sizing.htmlpublished, shareable

Here's the market-sizing briefing. TAM $18.4B, SAM $6.2B, three-year SOM $430M. I compared eight vendors — the clearest wedge is sub-50-seat teams that enterprise BI tools price out and overserve.

  • Every figure carries a citation in the sources appendix.
  • Published to a live URL — share the link, no export needed.

Projects

Workspaces Cowork uses to group conversations, memory, and outputs.

general

Default project

3 tasks 2 artifacts

Q2-Reporting

Board metrics & dashboards

1 task 1 artifact

Revenue-Ops

GTM signal & feedback

1 task 1 artifact

Scheduled Tasks

Cowork runs these on the cadence you set, then drops the results in the task.

Sort: Next run

1 scheduled task

Daily briefing

Every weekday at 7am, scan Slack, Gmail, my Calendar, and Linear, and give me a single priority brief.

general Active Next run in 3d

Live Artifacts

Documents, dashboards, and code Cowork produces. Share to get a live URL.

Sort: Shared first
Public
Q2-Reporting updated just now
Public
general updated 5d ago
feedback-themes .md
Public
Revenue-Ops updated 1d ago
daily-briefing .md
Public
general updated 6h ago
expenses .xlsx
Draft
general updated 2d ago
Q2-Reporting Public updated just now
general Public updated 5d ago
feedback-themes .md Revenue-Ops Public updated 1d ago
daily-briefing .md general Public updated 6h ago
expenses .xlsx general Draft updated 2d ago

Connected Apps and Data

Connect a source once. Secrets go into a vault, scoped per connection — the agent never sees a raw key.

Connected
Pg PostgreSQLDatabases Connected
S StripeFinance Connected
M GmailProductivity Connected
# SlackProductivity Connected
31 Google CalendarProductivity Connected
L LinearEngineering Connected
Available — featured

Memories

Rules, lessons, and saved context Cowork can reuse — yours to inspect and edit.

Global 1
Project · general 2
Select a memory file to inspect it.

lessons.md global

— Always reconcile Stripe MRR against the subscriptions table before reporting; they drift by ~2%.

— The boss prefers numbers first, then the narrative. Lead with the headline metric.

— Publish dashboards as live URLs by default — the team shares links, not screenshots.

lessons.md project · general

— Fiscal quarter starts in February, not January. Q2 = May–Jul.

— "North-star" metric is NRR; report it on every dashboard.

rules.md project · general

— Never write to production databases. Read-only credentials only.

— Currency is USD. Convert at the receipt date's rate.

Skills

Extend Cowork's capabilities with task-specific skills.

Sort: Name

What should we build?

No project
This computer
Ask first
Codex

Try a task

Code runs in the MindsHub desktop app on your own computer, against your own repos and folders — this preview stops where the task would start. Get the desktop app

Review PR #212 before I merge — rate limiting on checkout

Completed
Storefront API Work MacBook
Review acme/storefront-api PR #212 — rate limiting on the checkout endpoints. Correctness and security regressions only, not style. Run the suite and lint, report findings with file and line, and don't push or comment on GitHub.
Plan
Read the diff and PR description
Trace the rate-limit middleware
Run tests and lint on the branch
Report findings with file and line
Agent activity 14 actions · 0 changes · 6m
command
gh pr checkout 212
Switched to branch 'feat/checkout-rate-limit'
command
git diff main...HEAD --stat
6 files changed, 214 insertions(+), 31 deletions(-)
tool
Read src/middleware/rateLimit.ts
tool
Read src/routes/checkout.ts
command
pnpm test --filter checkout
Tests 48 passed (48) · 4.2s
command
pnpm lint
0 errors, 0 warnings

Reviewed PR #212 at e41c7b0. Two findings, no files changed:

  • [P1] Rate limit keys on req.ip — src/middleware/rateLimit.ts:42. Behind the load balancer every request arrives from the same address, so one busy tenant throttles checkout for everyone. Set app.set('trust proxy', 1) so req.ip resolves from X-Forwarded-For, or key on the session id.
  • [P2] Limiter state is per process — src/middleware/rateLimit.ts:18. The in-memory Map resets on deploy and is not shared across the three API replicas, so the effective limit is 3× the configured one. The Redis client in src/lib/redis.ts is already available.

Validation: pnpm test --filter checkout 48 passed; pnpm lint clean. Nothing pushed, no GitHub comments posted.

The agent finished this turn. Review the changes or send a follow-up.

Workspace auto
Enter to send · ↑↓ history · Shift+Enter for a new line

Fix the double charge when an order retry follows a Stripe timeout

Completed
Storefront API Work MacBook
Retrying a failed order can charge the card twice when the first Stripe call timed out — see support ticket 4831. Find the root cause in src/orders, fix it, and add a regression test that fails on main. Run pnpm test and pnpm lint before you open a draft PR.
Plan
Reproduce the double charge in a test
Trace the retry path in src/orders
Add an idempotency key per order
Run tests, lint, open a draft PR
Agent activity 23 actions · 3 changes · 9m
tool
Read src/orders/retry.ts
tool
Read src/payments/stripe.ts
file change
src/payments/stripe.ts
+ idempotencyKey: `order_${order.id}_charge`
file change
src/orders/retry.ts
Reuse the stored attempt id instead of minting a new one
diff
test/orders/retry.test.ts
+ it('charges once when the first attempt timed out')
command
pnpm test && pnpm lint && pnpm typecheck
313 passed (313) · lint clean · tsc clean

Found it. retryOrder() creates a fresh PaymentIntent on every attempt, and a Stripe timeout leaves the first one live. Draft PR #211 is up.

  • Changed src/payments/stripe.ts:61 — every charge now sends idempotencyKey: order_{id}_charge, so a retry after a timeout returns the original intent instead of creating a second one.
  • Changed src/orders/retry.ts:88 — the retry path reuses the stored attempt id instead of minting a new one, and logs when Stripe hands back an existing intent.
  • Changed test/orders/retry.test.ts — regression test with a mocked timeout; it fails on main and passes on the branch.

Validation: pnpm test 313 passed (1 new); pnpm lint and pnpm typecheck clean. Branch pushed as code/fix-double-charge-retry.

The agent finished this turn. Review the changes or send a follow-up.

Finish with GitHub
Fix double charge on order retry after Stripe timeout
acme/storefront-api#211 · code/fix-double-charge-retry
Draft created Checks passing
Workspace auto
Enter to send · ↑↓ history · Shift+Enter for a new line

Add a CSV export to the orders list, same filters and auth

Completed
Storefront API Work MacBook
Add GET /orders/export.csv that streams the current filter set as CSV — same auth and filters as GET /orders, capped at 50,000 rows. Ask before adding a dependency. Test the header row and the cap, and open a draft PR once the full suite passes.
Plan
Read the orders route and filters
Add the streaming export handler
Cover the header row and cap
Run the suite, open a draft PR
Agent activity 19 actions · 4 changes · 12m
tool
Ask first · add csv-stringify? — declined
Reused fast-csv, already in package.json
file change
src/routes/orders.export.ts
New file · 71 lines
file change
src/routes/orders.ts
+ router.get('/export.csv', requireAuth, exportOrdersCsv)
file change
docs/openapi.yaml
+ /orders/export.csv — per the API change checklist
diff
test/routes/orders.export.test.ts
+ 2 tests: header row · 50,000-row cap
command
pnpm test && pnpm lint && pnpm typecheck
314 passed (314) · lint clean · tsc clean

Added the export as a streamed response, so a 50,000-row pull holds a few KB in memory instead of the whole result set. Draft PR #209 is up.

  • Changed src/routes/orders.export.ts — new handler; reuses buildOrdersQuery() so filters match GET /orders exactly, streams rows through fast-csv and stops at 50,000 with an X-Truncated: true header.
  • Changed src/routes/orders.ts:24 and docs/openapi.yaml — route registered behind the same requireAuth middleware and documented, per the API change checklist.
  • Changed test/routes/orders.export.test.ts — a header-row test and a cap test against a seeded 50,001-row table.

Validation: pnpm test 314 passed (2 new); pnpm lint and pnpm typecheck clean. You declined a new dependency; fast-csv was already installed, so nothing was added.

The agent finished this turn. Review the changes or send a follow-up.

Finish with GitHub
Add streamed CSV export for the orders list
acme/storefront-api#209 · code/orders-csv-export
Draft created Checks passing
Workspace auto
Enter to send · ↑↓ history · Shift+Enter for a new line

Projects

Repositories, folders, skills, and defaults shared by coding tasks.

ProjectResourcesUpdated

Connectors

Connect developer tools once, then add them to any Code Project.

GitHub Start from issues, create draft pull requests, and follow reviews and checks.
1 connected
L
Linear Start from Linear issues and post progress back to them.
Not connected

Skills

Shared engineering practice, versioned and ready for every coding agent.

MindsHub Engineering skills maintained by MindsHub 2
Acme engineering acme/engineering-skills · main 2