← Files SuperBooksARCHIVED FILE

.codex-plugin/plugin.json

8.21 KB · Nov 7, 2026 · 12:51 UTC

↓ Download file

See the change to this file →

{
  "author": {
    "name": "14930398 Canada Inc."
  },
  "description": "SuperBooks is bookkeeping for freelancers and small teams: bank transactions with AI categorisation, invoices, customers, a receipt inbox and document vault, a time tracker, and financial reports. The SuperBooks plugin lets ChatGPT work your books from your own account: list and inspect transactions, fix a category or workflow status, find unpaid or overdue invoices, draft a new invoice for a customer (drafts are never sent until you say so), look up customers and add new ones, search receipts and documents, match a receipt to a transaction, start and stop time tracking, and pull profit & loss, burn rate, runway, spending by category, revenue, balances, top customers and recurring expenses.\n\nAccess runs through OAuth 2.1 with PKCE and dynamic client registration; you approve read and write scopes on the consent screen, and a tool whose scope you did not grant is never offered. Destructive operations \u2014 deleting transactions, customers, categories, tags, documents or inbox items, and voiding invoices \u2014 are hidden behind a team-level \"Destructive AI tools\" switch that is OFF by default, on top of the credential's own scope. Every credential is rate-limited (120 calls a minute) and can be revoked at any time from Settings \u2192 Developer.\n\nThe plugin never moves money: bank connections, payments and billing are only reachable in the app. Sending an invoice e-mails it to your customer, and nothing else leaves your account. No purchases are made in-tool, no images, video or audio are generated, and no ads are served.",
  "interface": {
    "capabilities": [],
    "category": "Business & Operations",
    "defaultPrompt": [
      "How did my business do from June to September?",
      "Which invoices are still unpaid, and who owes me the most?",
      "Draft an invoice for Cedar Valley Books for 6 hours of design at $125."
    ],
    "developerName": "14930398 Canada Inc.",
    "displayName": "SuperBooks",
    "longDescription": "SuperBooks is bookkeeping for freelancers and small teams: bank transactions with AI categorisation, invoices, customers, a receipt inbox and document vault, a time tracker, and financial reports. The SuperBooks plugin lets ChatGPT work your books from your own account: list and inspect transactions, fix a category or workflow status, find unpaid or overdue invoices, draft a new invoice for a customer (drafts are never sent until you say so), look up customers and add new ones, search receipts and documents, match a receipt to a transaction, start and stop time tracking, and pull profit & loss, burn rate, runway, spending by category, revenue, balances, top customers and recurring expenses.\n\nAccess runs through OAuth 2.1 with PKCE and dynamic client registration; you approve read and write scopes on the consent screen, and a tool whose scope you did not grant is never offered. Destructive operations \u2014 deleting transactions, customers, categories, tags, documents or inbox items, and voiding invoices \u2014 are hidden behind a team-level \"Destructive AI tools\" switch that is OFF by default, on top of the credential's own scope. Every credential is rate-limited (120 calls a minute) and can be revoked at any time from Settings \u2192 Developer.\n\nThe plugin never moves money: bank connections, payments and billing are only reachable in the app. Sending an invoice e-mails it to your customer, and nothing else leaves your account. No purchases are made in-tool, no images, video or audio are generated, and no ads are served.",
    "privacyPolicyURL": "https://superbooks.io/privacy/",
    "shortDescription": "Bookkeeping and invoices",
    "supportURL": "https://superbooks.io/support/",
    "termsOfServiceURL": "https://superbooks.io/terms/",
    "websiteURL": "https://superbooks.io",
    "logo": "./assets/logo.png",
    "logoDark": "./assets/logo-dark.png",
    "composerIcon": "./assets/icon.png",
    "composerIconDark": "./assets/icon-dark.png"
  },
  "name": "app-6aa1f874762c8191b5fa4000b977a073",
  "version": "1.0.1",
  "mcpServers": "./.mcp.json",
  "extensions": {
    "com.openai": {
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Profit and loss over a range",
              "prompt": "Show me profit and loss for June through September 2026.",
              "tools_triggered": "search_tools, then execute_typescript calling external_reports_profit_loss",
              "expected_behavior": "Four monthly rows (2026-06 to 2026-09) each with revenue, expense and delta, plus totals \u2014 roughly $14.9k revenue against $7.8k expense \u2014 in USD. All figures come from the seeded bank transactions, so nothing is zero."
            },
            {
              "description": "Unpaid invoices and their detail",
              "prompt": "List my unpaid invoices, then show me the first one in detail.",
              "tools_triggered": "search_tools, then execute_typescript calling external_invoices_list and external_invoices_get",
              "expected_behavior": "Three unpaid invoices (INV-0001, INV-0002, INV-0003) with amount, currency, issue and due dates; INV-0001 is already past due. The detail call returns the customer, line items, note and sent_at timestamp."
            },
            {
              "description": "Draft an invoice for an existing customer",
              "prompt": "Create a draft invoice for Cedar Valley Books: 6 hours of design at $125, due in 30 days.",
              "tools_triggered": "search_tools, then execute_typescript calling external_customers_list and external_invoices_create_draft",
              "expected_behavior": "The customer is looked up by name, then a new invoice number (INV-000N) with status draft is returned. The draft is visible under Invoices in the app and is NOT sent \u2014 the customer receives nothing until invoices_send is called explicitly."
            },
            {
              "description": "Re-categorise a transaction",
              "prompt": "Find the September Figma transaction and file it under Design Software.",
              "tools_triggered": "search_tools, then execute_typescript calling external_transactions_list, external_categories_list and external_transactions_update_category",
              "expected_behavior": "The Figma Professional transaction from 2026-09-01 is found, the design_software slug is confirmed from the category list, and the update returns the transaction with the new category. Listing again shows the change persisted."
            },
            {
              "description": "Time logged on a project",
              "prompt": "How much time have I logged on the Harbor & Pine project in September?",
              "tools_triggered": "search_tools, then execute_typescript calling external_tracker_list_projects and external_tracker_list_entries",
              "expected_behavior": "The project 'Harbor & Pine website redesign' (customer Harbor & Pine Architecture, 80 hour estimate, in progress) is found, then its three September entries \u2014 kickoff interviews, sitemap and wireframes, visual design exploration \u2014 with start and stop times totalling 9 hours 45 minutes."
            }
          ],
          "negative": [
            {
              "description": "Bulk delete with the destructive switch off",
              "prompt": "Delete all my transactions from June.",
              "expected_behavior": ""
            },
            {
              "description": "Paying a bill or moving money",
              "prompt": "Pay the Figma invoice from my Studio Checking account.",
              "expected_behavior": ""
            },
            {
              "description": "Linking a bank account",
              "prompt": "Connect my Chase account so transactions sync automatically.",
              "expected_behavior": ""
            }
          ]
        },
        "demo_recording_url": "https://drive.google.com/open?id=1lFH1a5-cCy0qGh9sr_XOoxoRqQT1hys-",
        "commerce": false,
        "commerce_description": ""
      },
      "publication": {
        "countries": [],
        "release_notes": "Logo refresh: the listing icons are replaced with the official 1024px brand logo. No change to the MCP server, tools, OAuth or test account."
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: af4902c186809a17391fa9d979a31de529154d613ad7a8694e503f647d0911d3