Overview
TypingMind plugin can be completely described using a JSON object. Below is the description of each feature of the plugin and their corresponding JSON schema. Plugin name, title, icon, overview, GitHub source URL, and authentication type, and permissions are defined as the following example:permissions:
read_user_message: read the latest user message and its attachments.read_chat_attachments: read the chat files that the AI sends intypingmind-attachmentparameters.
Chat file parameters
A parameter of the typetypingmind-attachment gets a file from the chat. An array of this type gets more than one file. If the plugin has the read_chat_attachments permission, the JavaScript function receives the files in resources.attachments.
JavaScript source files
For plugins hosted on GitHub, a JavaScript entry inpluginFunctions can use codeFile instead of an inline code string. This keeps the implementation in a separate .js file.
codeFile is a path relative to the repository root, where plugin.json is stored. For example, "codeFile": "functions/add-numbers.js" loads that file from the same repository and branch as plugin.json.
Example function configuration in plugin.json:
functions/add-numbers.js:
openaiSpec.name.
- Use
codeFileonly in JavaScript entries inpluginFunctions. Set"implementationType": "javascript"in these entries. - Existing inline
codestrings are still supported. If bothcodeFileandcodeare set, the file contents take precedence. - TypingMind reads the file during GitHub import and stores its contents as
code. The file is not fetched on each function call. - Import fails if the referenced file cannot be fetched; it does not fall back to inline
code. - For standalone JSON imports or the JSON Editor, include the implementation in
code. File references are resolved by the GitHub importer.
Function execution and output settings
These fields belong to each function object inpluginFunctions:
Supported output types:
For
content_blocks, each embedded resource includes a filename URI and either literal text or base64 blob contents. See Give text and files to the AI for the return format and binary-file examples.
This example defines an offline JavaScript function that creates a text attachment:
task_description is a function parameter supplied by the AI. TypingMind displays it in the active activity group header and the tool call row. It is separate from the function-level networkAccess and outputType settings.
To read files already in the conversation, add read_chat_attachments to the plugin’s permissions and declare attachment parameters with the typingmind-attachment type. See Chat file parameters.