← Files MutallyARCHIVED FILE

plugin.json

8.57 KB · Nov 2, 2026 · 13:18 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "mutally",
  "version": "1.0.0",
  "description": "Record who owes whom in one sentence, approve each other's entries through a link, and see the same balances on both sides: loans, repayments, split bills, recurring debts and groups.",
  "author": {
    "name": "Rustam Samandarov",
    "url": "https://mutally.rsteam.uz"
  },
  "homepage": "https://mutally.rsteam.uz",
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Mutally",
        "shortDescription": "Mutual debt book",
        "longDescription": "Mutally is a mutual debt book that lives in ChatGPT. Say who owes whom in one sentence, such as \"I lent Aziz 50 dollars for lunch\", at the moment money changes hands, and Mutally records it in your book. Send the other person an invite link yourself; once they open it, sign in and approve, the two of you are connected and see the same numbers. Later entries between you arrive on their side as requests to approve, or to dispute with a note; a disputed entry stays marked until it is corrected or deleted. Record loans, repayments, gifts and opening balances in any currency, split a bill between several friends, note money you collected or paid on someone else's behalf, and set up a recurring debt or an installment plan whose monthly charge appears on its day. Keep a rotating savings group (gap) or a chip-in collection with members, rounds and collectors, and group entries into projects such as a wedding. Then ask: who owes me, whom do I owe, what is overdue, what is waiting for my answer, what is the history with one person. Bring in earlier history from a spreadsheet after a preview, export everything as Excel or CSV, correct or delete an entry and undo it, and delete your account. Available in 11 languages, including Uzbek. For anyone who lends, borrows, splits bills, pools money or keeps a shop tab. Mutally only records and calculates: it never moves money, takes payments, charges or collects fees, adds interest or messages anyone, and it is not a bank or a debt collector. People who do not use Mutally appear only by the name you give them and the entries about them. You connect a Mutally account before anything is stored; your records are kept on Mutally's server in Germany (EU) and are deleted whenever you ask.",
        "developerName": "Rustam Samandarov",
        "category": "Productivity",
        "capabilities": [
          "Record debts in one sentence",
          "Approve each other's entries",
          "Split bills",
          "See who owes whom",
          "Recurring debts and installments",
          "Gap and chip-in groups",
          "Group entries into projects",
          "Import and export records",
          "Correct and delete entries",
          "Delete the account"
        ],
        "websiteURL": "https://mutally.rsteam.uz",
        "supportURL": "https://mutally.rsteam.uz/support",
        "privacyPolicyURL": "https://mutally.rsteam.uz/privacy",
        "termsOfServiceURL": "https://mutally.rsteam.uz/terms",
        "defaultPrompt": [
          "I lent Aziz 50 USD for lunch",
          "Who owes me money?",
          "What is waiting for my approval?"
        ],
        "composerIcon": "./assets/icon.png",
        "composerIconDark": "./assets/icon-dark.png",
        "logo": "./assets/icon.png",
        "logoDark": "./assets/icon-dark.png",
        "screenshots": [
          "./assets/01-lent-aziz.png",
          "./assets/02-who-owes-me.png",
          "./assets/03-waiting-for-approval.png"
        ]
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "In a dedicated test account, record a loan to someone who is not yet a contact.",
              "prompt": "I lent Aziz 50 USD today for lunch.",
              "tools_triggered": "record_debts",
              "expected_behavior": "Save one loan of 50 USD dated today that the reviewer gave to a new contact named Aziz and show the Recorded card. Aziz is not connected, so the entry stays in the reviewer's book only and Mutally sends no message. Sent again at once, it adds nothing; a matching entry later asks before adding a likely duplicate."
            },
            {
              "description": "With Aziz present as a contact from the case above, make the link the reviewer shares with him.",
              "prompt": "Make an invite link for Aziz.",
              "tools_triggered": "make_invite_link",
              "expected_behavior": "Return a single-use invite link for Aziz, valid for 7 days, with a ready message the reviewer sends themselves; Mutally sends nothing. Making a new link stops the earlier one, so the tool is annotated destructive and open-world."
            },
            {
              "description": "Use the seeded account, which is connected to a counterpart with confirmed entries, a split and a recurring debt.",
              "prompt": "Who owes me money and whom do I owe?",
              "tools_triggered": "get_balances",
              "expected_behavior": "Show the Balances card: who owes the reviewer and whom the reviewer owes, per person and per currency in the reviewer's own contact names, with an approximate total in the home currency. Nothing is changed; the tool is read-only."
            },
            {
              "description": "The seeded counterpart has recorded entries that wait for the reviewer's answer, and has disputed one of the reviewer's entries.",
              "prompt": "What is waiting for my approval?",
              "tools_triggered": "get_requests",
              "expected_behavior": "Show the Requests card with the counterpart's entries waiting for the reviewer's answer, each with Approve and That's wrong buttons, and the reviewer's own entry the counterpart disputed, with the counterpart's note. Nothing is answered until the reviewer presses a button."
            },
            {
              "description": "With Aziz's loan from the first case saved, look at the history with one person.",
              "prompt": "Show my history with Aziz.",
              "tools_triggered": "get_history",
              "expected_behavior": "Show the History card for Aziz: the opening balance, the 50 USD loan with its state and date, and the closing balance per currency. Entries with other people are not included; the tool is read-only."
            }
          ],
          "negative": [
            {
              "description": "The registered Mutally tools do not move or send money.",
              "prompt": "Pay Aziz 50 USD for me.",
              "tools_triggered": "None",
              "expected_behavior": "Do not invoke Mutally or record an entry as a substitute for paying. Explain that Mutally records who owes whom and cannot pay anyone or send money, and offer to record the repayment after the user has made it."
            },
            {
              "description": "Mutally never contacts other people or collects debts on the user's behalf.",
              "prompt": "Collect this debt from Aziz for me.",
              "tools_triggered": "None",
              "expected_behavior": "Do not invoke Mutally or send anything to Aziz. Explain that Mutally never messages anyone or collects money; it keeps a shared record, and the user can show Aziz what he owes by sharing an invite link themselves."
            },
            {
              "description": "A request for interest terms or legal advice does not ask to read or change the saved debts.",
              "prompt": "How much interest can I legally charge Aziz on this loan, and can I take him to court if he doesn't pay?",
              "tools_triggered": "None",
              "expected_behavior": "Do not invoke Mutally. Respond as a general information request without legal advice drawn from the saved entries; Mutally adds no interest and gives no legal advice."
            }
          ]
        },
        "demo_recording_url": "https://mutally.rsteam.uz/review/mutally-chatgpt-demo.mp4",
        "commerce": false,
        "commerce_description": "Mutally records who owes whom between people and calculates balances; it never moves money, takes payments, charges or collects fees, or messages anyone, and it sells nothing."
      },
      "publication": {
        "release_notes": "Initial release: record who owes whom in one sentence, connect with the other person through an invite link, approve or dispute each other's entries, split bills, keep recurring debts, installment plans, groups and projects, see balances, requests and history, bring in and export records, correct or delete entries, and delete the account."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 913221f645efea39554be75c3865353ee354e77b51ccf86c7614f0529d03bb2a