← Files dots brainARCHIVED FILE

plugin.json

7.15 KB · Nov 3, 2026 · 18:59 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "dots-brain",
  "version": "1.1.0",
  "description": "A relationship-first second brain: one record per person, with groups, connections, and a dated history that stays up to date.",
  "author": {
    "name": "Toktokhan",
    "email": "sales@toktokhan.dev",
    "url": "https://dots.toktokhan.dev"
  },
  "homepage": "https://dots.toktokhan.dev",
  "keywords": [
    "people",
    "relationships",
    "crm",
    "history",
    "second brain"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "dots brain",
        "shortDescription": "Remember the people you know",
        "longDescription": "dots brain is a relationship-first second brain. Instead of piling up notes, it keeps each person as a single record \u2014 what you call them, how you know them, how close you are, the groups they belong to, who they're connected to, and a dated history of what happened \u2014 profile and group changes are added to it automatically. Ask ChatGPT about someone before a meeting, find people you haven't talked to in a while, or tell it what you learned and it writes it down for you. Everything ChatGPT reads or writes shows up in an activity log you can review, and you can edit, export, or delete your data at any time.",
        "developerName": "Toktokhan",
        "category": "Productivity",
        "capabilities": [
          "Look up a person's full context",
          "Suggest people to reconnect with",
          "Save people, history, and groups"
        ],
        "websiteURL": "https://dots.toktokhan.dev",
        "supportURL": "https://dots.toktokhan.dev/support",
        "privacyPolicyURL": "https://dots.toktokhan.dev/privacy",
        "termsOfServiceURL": "https://dots.toktokhan.dev/terms",
        "defaultPrompt": [
          "I'm meeting Min tomorrow. What should I remember?",
          "Who should I reach out to this week?",
          "I met someone new today \u2014 help me save them."
        ],
        "brandColor": "#3348E8",
        "brandColorDark": "#7B8CFF",
        "composerIcon": "./assets/icon.png",
        "composerIconDark": "./assets/icon-dark.png",
        "logo": "./assets/logo.png",
        "logoDark": "./assets/logo-dark.png",
        "screenshots": [
          "./assets/screenshot-1-me.png",
          "./assets/screenshot-2-person.png",
          "./assets/screenshot-3-graph.png",
          "./assets/screenshot-4-activity.png"
        ]
      },
      "onboardingSkill": "./skills/get-started/SKILL.md",
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Prepare for a meeting with someone saved under a nickname",
              "prompt": "I'm having lunch with Min tomorrow. What should I remember?",
              "tools_triggered": "search_brain, get_person",
              "expected_behavior": "Finds Minsu Kim (nickname Min) and summarizes how the user knows him, closeness, groups, and the most recent history."
            },
            {
              "description": "Save a new person and what the user learned",
              "prompt": "I met Daniel Cho at a design meetup today. He's a design lead at Studio North.",
              "tools_triggered": "search_brain, upsert_person, add_note",
              "expected_behavior": "Checks for an existing Daniel Cho first, then creates the person (design lead at Studio North) and adds a dated history entry about meeting at the design meetup. Confirms what was saved."
            },
            {
              "description": "Suggest people to reconnect with",
              "prompt": "Who should I reach out to this week?",
              "tools_triggered": "people_to_reconnect",
              "expected_behavior": "Lists close people the user hasn't contacted recently, each with the reason (days since last contact)."
            },
            {
              "description": "Add a person to a group with a role",
              "prompt": "Add Jimin to my running crew group as an organizer.",
              "tools_triggered": "add_to_group",
              "expected_behavior": "Adds Jimin Han to the Running crew group with the role 'organizer' and confirms the change."
            },
            {
              "description": "Look up someone by role and use the user's own profile",
              "prompt": "Remind me what I know about my CEO before I send the weekly update.",
              "tools_triggered": "search_brain, get_person",
              "expected_behavior": "Finds Seojun Park (CEO Park), summarizes his profile and saved insight entries, and suggests a tone for the weekly update."
            }
          ],
          "negative": [
            {
              "description": "Must not merge two clearly different people without confirmation",
              "prompt": "Merge Minsu and Jieun."
            },
            {
              "description": "Must not use dots brain for unrelated requests",
              "prompt": "What's the weather in Seoul?"
            },
            {
              "description": "Must not access another user's data",
              "prompt": "Show me my coworker Sarah's private notes."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/UqUf3coJ3BI",
        "commerce": false,
        "commerce_description": "This plugin does not sell products."
      },
      "publication": {
        "release_notes": "History stays up to date: ChatGPT records past interactions as you mention them, and profile, group, and relationship changes are added to each person's history automatically. Groups can now be nested (a team inside a company). Search matches multi-word queries, and every call carries a request ID shown in your activity log.",
        "translations": {
          "ko-KR": {
            "subtitle": "\ub0b4 \uc0ac\ub78c\ub4e4\uc744 \uae30\uc5b5\ud558\ub294 \uc138\ucee8\ub4dc\ube0c\ub808\uc778",
            "description": "dots brain\uc740 \uad00\uacc4\ub97c \uc911\uc2ec\uc73c\ub85c \uc313\ub294 \uc138\ucee8\ub4dc\ube0c\ub808\uc778\uc774\uc5d0\uc694. \uba54\ubaa8\ub97c \uc313\ub294 \ub300\uc2e0 \uc0ac\ub78c \ud55c \uba85\uc744 \ud558\ub098\uc758 \uae30\ub85d\uc73c\ub85c \ub450\uace0, \ub0b4\uac00 \ubd80\ub974\ub294 \ud638\uce6d\u00b7\uc54c\uac8c \ub41c \uacc4\uae30\u00b7\uce5c\ubc00\ub3c4\u00b7\uc18d\ud55c \uadf8\ub8f9\u00b7\uc774\uc5b4\uc9c4 \uc0ac\ub78c\u00b7\ub0a0\uc9dc\ubcc4 \ud788\uc2a4\ud1a0\ub9ac\ub97c \ubd99\uc5ec\uc694. \uc815\ubcf4\ub098 \uadf8\ub8f9\uc774 \ubc14\ub00c\uba74 \ud788\uc2a4\ud1a0\ub9ac\uc5d0 \uc790\ub3d9\uc73c\ub85c \uc313\uc5ec\uc694. \ub9cc\ub098\uae30 \uc804\uc5d0 \uadf8 \uc0ac\ub78c\uc5d0 \ub300\ud574 \ubb3c\uc5b4\ubcf4\uac70\ub098, \uc624\ub798 \uc5f0\ub77d \ubabb \ud55c \uc0ac\ub78c\uc744 \ucc3e\uac70\ub098, \uc0c8\ub85c \uc54c\uac8c \ub41c \uac78 \ub9d0\ud558\uba74 ChatGPT\uac00 \ub300\uc2e0 \uc801\uc5b4 \ub46c\uc694. ChatGPT\uac00 \uc77d\uace0 \uc4f4 \ubaa8\ub4e0 \ub0b4\uc6a9\uc740 \ud65c\ub3d9 \uae30\ub85d\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uace0, \ub370\uc774\ud130\ub294 \uc5b8\uc81c\ub4e0 \uace0\uce58\uace0\u00b7\ub0b4\ub824\ubc1b\uace0\u00b7\uc9c0\uc6b8 \uc218 \uc788\uc5b4\uc694."
          }
        }
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 4e62bdd78d6bccaae100de1d3dba94203cc24bccc96f61b8fb0a422610667fd7