Skip to content

We Are Where You Are

Terminal, IDE, Slack, or API — one knowledge graph, every interface. DIS meets you in the tools you already use.

@DIS in Slack

Mention @DIS in any channel or DM. Ask questions, search across tools, get context — without leaving the conversation.

# engineering
Sarah

Sarah

@DIS why was the checkout flow rewritten last sprint?

DIS

DIS

Rewritten in PR #312 (merged Mar 8) by Jake.

Why: Stripe v2 → v3 migration. Old session-based checkout sunsetting in April.

Decision: Product sync (Mar 4) agreed to rewrite — opportunity to add Apple Pay (PAY-215).

Watch out: PAY-198 (webhook retry fix) blocks v3 webhooks. Check with Jake first.

Any channel

Public, private, or DMs.

For everyone

PMs, designers, engineers.

Sources included

Every answer links to its source.

Agent Plugin

Two commands. Your coding agent gets native access to your team's full context — no extra tooling required.

# Add the marketplace source
$ claude plugin marketplace add dagg-ai/dis-plugin --scope project
# Install the DIS skill
$ claude plugin install dis@DIS-marketplace --scope project
# That's it. DIS is now a native skill.

Other agents: See the plugin repo for setup instructions for Cursor, Windsurf, Gemini CLI, and more.

Claude Code / Codex

Native skill in every session.

Cursor / Windsurf

IDE agents with full team context.

CLI under the hood

Same commands, same data.

DIS CLI

Seven commands. Your entire team's knowledge. From any terminal.

terminal
$ npm install -g @getdis/cli
dis search — Cross-system search in one query
$ dis search "why was Redis removed" --ref INF-302
PR #189 — Remove Redis dependency (merged Feb 28)
Author: Sarah K. | Reviews: 3 approvals
Linked: INF-302, Slack #infra thread (47 messages)
Meeting: Infrastructure Sync (Mar 1)
Decision: move rate limiting to CDN edge layer
Action: Sarah to close INF-302 after Cloudflare config
Slack #infra — Sarah K. (Mar 2):
"CDN rate limiting is live in staging. INF-302 can be closed"
dis ask — Ask your codebase anything
$ dis ask "How does the webhook retry logic work?"
Webhook retries are handled by WebhookDispatcher
(src/services/webhooks/dispatcher.ts:42-89)
Flow: enqueue → attempt → backoff → retry (max 5)
Backoff: exponential, 1s → 2s → 4s → 8s → 16s
Dead letter: after 5 failures → webhook_failures table
Alert: Slack #oncall via PagerDuty integration
Sources: dispatcher.ts, webhook.queue.ts, retry.config.ts
dis plan — Implementation plans grounded in reality
$ dis plan "Add SSO support for enterprise customers"
Outcome: Enterprise customers can authenticate via SAML/OIDC
Scope: auth service, tenant config, admin UI
Sub-jobs:
1. Add SAML provider to auth.service (auth.service.login)
2. Tenant SSO config UI (admin/settings/sso.tsx)
3. Migration: add sso_config column to tenants table
4. Update onboarding flow for SSO-first tenants
Open questions:
- Support OIDC in v1 or SAML only? (no prior decision found)
- Grace period for password→SSO migration?
dis research — Fresh context before you start coding
$ dis research "migrate payments from Stripe v2 to v3"
Context pack:
Stripe integration: src/billing/ (12 files, last changed Mar 8)
Active tickets: PAY-201 (v3 migration), PAY-198 (webhook fix)
Risk: PAY-198 patches v2 webhooks — merge before migrating
Grounding:
Meeting (Mar 10): team agreed v3 migration after PAY-198 ships
Slack #billing: Jake confirmed v3 sandbox is configured
Evidence: Stripe v3 changelog, internal migration notes in Notion
dis resolve — Entity names → exact file locations
$ dis resolve "auth.service.login" "models.User"
auth.service.login
kind: function
file: src/services/auth/auth.service.ts
lines: 42–89
models.User
kind: class
file: src/models/user.ts
lines: 8–67
dis deps — Understand impact before you change
$ dis deps "billing.StripeClient"
billing.StripeClient
depends on: 4 entities
billing.config → src/billing/config.ts:1
http.client → src/lib/http.ts:12
models.Invoice → src/models/invoice.ts:5
models.Subscription → src/models/subscription.ts:8
depended by: 7 entities
billing.checkout.createSession
billing.webhooks.handleEvent
billing.invoices.sync
api.routes.billing (+ 3 more)

MCP Server

Fallback

For environments where the CLI can't run directly, DIS exposes an MCP (Model Context Protocol) server. The CLI is the recommended interface — use MCP only when you need a server-based integration.

Endpoint: https://mcp.getdis.ai/mcp

One knowledge graph. Every interface you need.