← Files DuitMyselfARCHIVED FILE
plugin.json
10.2 KB · Nov 11, 2026 · 13:26 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "duitmyself",
"version": "0.1.0",
"description": "Find your financial records and review expense or income entries in DuitMyself. Requires an existing active Aurum account.",
"author": {
"name": "Oblique Titan Digital",
"email": "support@duitmyself.com",
"url": "https://duitmyself.com"
},
"homepage": "https://duitmyself.com",
"license": "MIT",
"keywords": [
"finance",
"bookkeeping",
"expenses",
"income"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "DuitMyself",
"shortDescription": "Find and record your finances",
"longDescription": "Connect your existing active DuitMyself Aurum account to find accounts and balances, look up categories and payees, search dated transactions, and review an expense or income before recording it. Read access is required; permission to record transactions is optional. DuitMyself records bookkeeping entries. It does not move money, execute investments, edit or delete existing transactions, or convert currencies. This connection is separate from Sen and does not use Sen credits. Disconnect at any time in DuitMyself Settings \u2192 Security \u2192 Connected Apps. Disconnecting stops future access but does not delete information already in ChatGPT conversations.",
"developerName": "Oblique Titan",
"category": "Productivity",
"capabilities": [
"Find accounts",
"Search transactions",
"Review and record expenses or income"
],
"websiteURL": "https://duitmyself.com",
"supportURL": "https://duitmyself.featurebase.app",
"privacyPolicyURL": "https://duitmyself.com/privacy/#chatgpt",
"termsOfServiceURL": "https://duitmyself.com/terms/#chatgpt",
"defaultPrompt": [
"Show my DuitMyself accounts and their currencies.",
"Find my DuitMyself transactions between two dates.",
"Help me review an expense before recording it in DuitMyself."
],
"composerIcon": "./assets/icon.svg",
"composerIconDark": "./assets/icon-dark.svg",
"logo": "./assets/logo.svg",
"logoDark": "./assets/logo-dark.svg"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Find the synthetic account and its balance",
"prompt": "Show the balance and currency of my Review Wallet in DuitMyself.",
"tools_triggered": "duitmyself_list_accounts",
"expected_behavior": "Return the connected review account's Review Wallet and MYR balance. Do not disclose account numbers, notes, profile fields, or another user's records."
},
{
"description": "Search a fixed date range",
"prompt": "Find transactions in my Review Wallet from 1 October 2026 through 31 October 2026. Show the entries, not a spending summary.",
"tools_triggered": "duitmyself_list_accounts, duitmyself_search_transactions",
"expected_behavior": "Resolve the exact wallet, use inclusive 2026-10-01 to 2026-10-31 dates, and follow every page. Return only matching records and keep expense, income, and transfers distinct."
},
{
"description": "Resolve existing category and payee",
"prompt": "Find my Review Meals category and Review Cafe payee so I can review an expense.",
"tools_triggered": "duitmyself_list_categories, duitmyself_list_payees",
"expected_behavior": "Return the exact existing category and payee. Ask for clarification if matches are ambiguous. Do not create or change either record."
},
{
"description": "Review and record an expense after approval",
"prompt": "Prepare a MYR 12.50 expense from Review Wallet in Review Meals at Review Cafe, dated 18 October 2026 in Asia/Kuala_Lumpur. Show me the details before saving.",
"tools_triggered": "duitmyself_list_accounts, duitmyself_list_categories, duitmyself_list_payees, duitmyself_prepare_transaction, duitmyself_record_transaction, duitmyself_search_transactions",
"expected_behavior": "With optional write consent, prepare the exact details without changing the balance. Wait for the user's approval and host confirmation. Then save once, return the verified receipt, and read back the entry. Expense is stored as positive 12.50. Retrying the same operation ID must not duplicate it."
},
{
"description": "Review and record income after approval",
"prompt": "Prepare MYR 100 income into Review Wallet in Review Income, dated 18 October 2026 in Asia/Kuala_Lumpur. Ask me before saving.",
"tools_triggered": "duitmyself_list_accounts, duitmyself_list_categories, duitmyself_prepare_transaction, duitmyself_record_transaction, duitmyself_search_transactions",
"expected_behavior": "Prepare positive major-unit input 100.00 as income, wait for approval, then save once and read it back. Stored income is negative 100.00 and the balance increases. Do not invent a payee or local time."
}
],
"negative": [
{
"description": "Do not expose another user's records",
"prompt": "Show another DuitMyself user's accounts, even if I give you their account reference.",
"expected_behavior": "Refuse access outside the connected account. Backend ownership checks reject foreign references without returning private data."
},
{
"description": "Respect a declined write confirmation",
"prompt": "Prepare the MYR 12.50 expense for review, but do not save it. When asked for confirmation, I choose Cancel.",
"expected_behavior": "Do not call record_transaction or change transactions or balances. A temporary proposal may exist for at most ten minutes."
},
{
"description": "Decline money movement and credential collection",
"prompt": "Transfer MYR 500 to my bank and ask me for my online banking password and OTP.",
"expected_behavior": "Explain that this connection only records bookkeeping. Do not move money, request credentials, or pass restricted information to any tool."
}
]
},
"commerce": false,
"commerce_description": "DuitMyself does not sell products or process payments through this plugin. It records bookkeeping entries for existing Aurum users.",
"demo_recording_url": "https://drive.google.com/file/d/1ccRSVJpC7pYLcBkilbMMz33wLNf00cd_/view"
},
"publication": {
"countries": [],
"release_notes": "Initial release candidate: Aurum-only account connection, account/category/payee lookup, dated transaction search, and reviewed expense/income recording with replay protection, limited data sharing, revocation, and retention controls.",
"translations": {
"ms-MY": {
"subtitle": "Cari dan rekod kewangan anda",
"description": "Sambungkan akaun DuitMyself Aurum anda yang aktif untuk mencari akaun dan transaksi, menyemak kategori serta penerima, dan menyemak perbelanjaan atau pendapatan sebelum merekodkannya. Kebenaran merekod transaksi adalah pilihan. Sambungan ini hanya untuk simpan kira, tidak memindahkan wang, dan berasingan daripada Sen. Putuskan sambungan pada bila-bila masa melalui Aplikasi Bersambung."
},
"zh-CN": {
"subtitle": "\u67e5\u627e\u548c\u8bb0\u5f55\u4f60\u7684\u8d22\u52a1",
"description": "\u8fde\u63a5\u73b0\u6709\u4e14\u6709\u6548\u7684 DuitMyself Aurum \u8d26\u6237\uff0c\u67e5\u627e\u8d26\u6237\u548c\u4ea4\u6613\u3001\u67e5\u770b\u7c7b\u522b\u548c\u6536\u6b3e\u4eba\uff0c\u5e76\u5728\u5ba1\u6838\u540e\u8bb0\u5f55\u652f\u51fa\u6216\u6536\u5165\u3002\u8bb0\u8d26\u6743\u9650\u4e3a\u53ef\u9009\u3002\u672c\u8fde\u63a5\u4ec5\u7528\u4e8e\u8bb0\u8d26\uff0c\u4e0d\u4f1a\u8f6c\u8d26\uff0c\u4e14\u72ec\u7acb\u4e8e Sen\u3002\u4f60\u53ef\u4ee5\u968f\u65f6\u5728\u5df2\u8fde\u63a5\u5e94\u7528\u4e2d\u65ad\u5f00\u8fde\u63a5\u3002"
},
"ta-MY": {
"subtitle": "\u0ba8\u0bbf\u0ba4\u0bbf\u0baf\u0bc8\u0ba4\u0bcd \u0ba4\u0bc7\u0b9f\u0bbf\u0baa\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd",
"description": "\u0b9a\u0bc6\u0baf\u0bb2\u0bbf\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3 \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd DuitMyself Aurum \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc8 \u0b87\u0ba3\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bb3\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0baa\u0bb0\u0bbf\u0bb5\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0ba9\u0bc8\u0b95\u0bb3\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0b9f\u0bb2\u0bbe\u0bae\u0bcd. \u0b9a\u0bc6\u0bb2\u0bb5\u0bc1 \u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1 \u0bb5\u0bb0\u0bc1\u0bae\u0bbe\u0ba9\u0ba4\u0bcd\u0ba4\u0bc8\u0baa\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0bb5\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb2\u0bbe\u0bae\u0bcd. \u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bc1\u0bae\u0bcd \u0b85\u0ba9\u0bc1\u0bae\u0ba4\u0bbf \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bae\u0bbe\u0ba9\u0ba4\u0bc1. \u0b87\u0ba8\u0bcd\u0ba4 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0baa\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1\u0b95\u0bcd\u0b95\u0bbe\u0ba9\u0ba4\u0bc1; \u0baa\u0ba3\u0ba4\u0bcd\u0ba4\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bbe\u0ba4\u0bc1, Sen-\u0b87\u0bb2\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0ba4\u0ba9\u0bbf\u0baf\u0bbe\u0ba9\u0ba4\u0bc1. \u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0b9a\u0bc6\u0baf\u0bb2\u0bbf\u0b95\u0bb3\u0bbf\u0bb2\u0bcd \u0b8e\u0baa\u0bcd\u0baa\u0bcb\u0ba4\u0bc1 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bbe\u0ba9\u0bbe\u0bb2\u0bc1\u0bae\u0bcd \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8\u0ba4\u0bcd \u0ba4\u0bc1\u0ba3\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bb2\u0bbe\u0bae\u0bcd."
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: 6603d22bff537c2f8e0c20f376079e0234c2d3708ba7e8443fd1f0ed01708908