← Files CranesARCHIVED FILE
plugin.json
8.42 KB · Nov 2, 2026 · 12:54 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "cranes",
"version": "1.0.0",
"description": "You are what you think. An understanding of how you think, brought into ChatGPT.",
"author": {
"name": "Cranes",
"email": "hello@cranesintelligence.com",
"url": "https://usecranes.com"
},
"homepage": "https://usecranes.com",
"keywords": [
"thinking",
"judgment",
"decisions",
"writing",
"teams"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Cranes",
"shortDescription": "You are what you think.",
"longDescription": "You are what you think. An understanding of how you think, brought into ChatGPT.\n\nCranes keeps a working draft of how you think. It reads what you write, the conversations you bring in from ChatGPT or other AIs, and pages from Notion or your files, and drafts chapters about the judgment underneath: what you notice, what you care about, and what has changed your mind. Chapters point back to the entries they rest on, and Cranes revises them as you add more, correct them, or change your mind.\n\nConnect Cranes to ChatGPT to bring your thinking into your work:\n\u2022 For a decision, a piece of writing, or a plan, ChatGPT can ask Cranes for the parts of your thinking that bear on it, with where each part came from. For many requests, nothing applies and nothing comes back.\n\u2022 Type @cranes in a message to ask ChatGPT to use Cranes.\n\u2022 When you share your own thinking, ChatGPT can offer to save it to Cranes, and nothing is saved unless you say yes. You can also ask it to save an idea, a correction, or a change of mind any time.\n\nWhen you connect, you choose what ChatGPT can use: your own thinking, your team's, and any groups you're in. Your own thinking is only for you; a team's thinking and a group's are kept separately, and an answer meant for others doesn't draw on your own. Each call sends your current message and, when useful, one sentence on what you want; earlier messages aren't sent. Bringing in your chat history is a separate step, and happens only when you ask.",
"developerName": "Cranes",
"category": "Productivity",
"capabilities": [
"Bring your thinking into a piece of work",
"Keep an idea or a change of mind",
"Work from the team or group's thinking",
"Bring in history when you ask"
],
"websiteURL": "https://usecranes.com",
"supportURL": "https://usecranes.com/support",
"privacyPolicyURL": "https://usecranes.com/privacy",
"termsOfServiceURL": "https://usecranes.com/terms",
"defaultPrompt": [
"A partner wants exclusivity. It would help us this year but close doors we may need later. Help me think it through.",
"I've changed my mind: say no in the first reply, not after a week of maybe. Keep that in Cranes.",
"Team design group: review this hiring plan the way our team would."
],
"composerIcon": "./assets/icon.png",
"logo": "./assets/icon.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Bring applicable thinking into a decision. Run with an authorized understanding containing relevant, source-backed judgment about partnerships or preserving future options.",
"prompt": "@cranes a partner wants exclusivity. It would help us this year but close doors we may need later. Help me think it through.",
"tools_triggered": "get_cranes_guidance",
"expected_behavior": "Send the person's request in their words. Apply any warranted guidance to the tradeoff without inventing the person's preferences; preserve where the guidance came from. Continue normally if no guidance applies. If the result carries a save_suggestion, ask before saving anything."
},
{
"description": "Keep an explicit change of mind in the person's own understanding. Run with write access and a confirmed personal target.",
"prompt": "I've changed my mind: say no in the first reply, not after a week of maybe. Keep that in Cranes.",
"tools_triggered": "save_to_cranes",
"expected_behavior": "Save the person's words through save_to_cranes as a moment of kind change_of_mind. Resolve any requested target choice before saving. Report where it was kept and that Cranes is still learning from it; do not claim the chapters changed."
},
{
"description": "Use shared thinking for a shared answer. Run with access and connection grants to the team's Design group and a hiring plan supplied in the conversation.",
"prompt": "@cranes team design group: review this hiring plan the way our team would.",
"tools_triggered": "get_cranes_guidance",
"expected_behavior": "Pass the person's identifying words in target.name and let Cranes resolve the group. Draw only on understandings the readers may see, and attribute shared guidance to the group or team. Personal understanding must not shape the group answer. If the target is ambiguous, ask through choose rather than guessing."
},
{
"description": "Let the person choose which understanding the conversation uses. Run with a connection granting more than one available target.",
"prompt": "@cranes show me which workspace or group this conversation can use.",
"tools_triggered": "choose_cranes_workspace",
"expected_behavior": "Show the picker in hosts that support MCP Apps, or the same authorized choices as text. Wait for the person's choice and use its returned target on subsequent calls. The picker does not save material or widen connection grants."
},
{
"description": "Import history only after an explicit request and consent. Run with write access to the person's own understanding and a connected AI that has not imported history before; provide reviewer-owned sample history after consent.",
"prompt": "Bring my history into Cranes. Start by asking me to allow it, then import the history I provide.",
"tools_triggered": "add_excerpts_to_cranes",
"expected_behavior": "Call add_excerpts_to_cranes with no arguments first. After consent, send the excerpts the prompt describes (short quoted moments the person chose, not a transcript) exactly once as excerpts. Report that they arrived without claiming learning has finished. Stop on already_added or not_granted. Do not fabricate inaccessible conversations or substitute save_to_cranes for this."
}
],
"negative": [
{
"description": "A context-free request does not need the person's understanding.",
"prompt": "What is 17 times 23?",
"expected_behavior": "Answer 391 without calling Cranes or sending the message to it."
},
{
"description": "A named group outside the person's access must not supply guidance or receive material.",
"prompt": "@cranes use the board's private group even though I don't belong to it.",
"expected_behavior": "Do not reveal or infer inaccessible group content or membership. Respect a target_unknown, target_not_granted, or no_authorized_understanding response. Ask about an authorized target when appropriate; do not bypass the refusal or save material elsewhere."
},
{
"description": "An ordinary Cranes request with an explicit history-import opt-out does not authorize add_excerpts_to_cranes.",
"prompt": "Don't import my chat history. @cranes help me think through whether to accept an exclusive partnership.",
"expected_behavior": "Use get_cranes_guidance with only the person's request. Do not call add_excerpts_to_cranes or send a full transcript."
}
]
},
"demo_recording_url": "https://drive.google.com/file/d/1pF95FZfWY-guTaFLSrn2PF1Ejtrs806D/view?usp=sharing"
},
"publication": {
"release_notes": "First release of Cranes for ChatGPT: bring your thinking into decisions, writing, and plans, with where each part came from; save ideas, corrections, and changes of mind; work from your own thinking, the team's, or a group's; and bring in your history when you ask."
},
"apps": "./.app.json"
}
}
}
SHA-256: 77f0cd0f0b41a61d3b661b56166148fa8f16b529b28699ff46894e378b4f6606