> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tuple.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Submitting a trigger

If you'd like to share your trigger with other Tuple users, you can submit it to [the official directory](https://tuple.app/triggers/directory).

Community triggers that are shown in the directory live in a GitHub repository, [tupleapp/community-triggers](https://github.com/tupleapp/community-triggers).

Each trigger is reviewed by someone at Tuple and given our blessing.

## Language requirements

For your trigger to be included in the directory, it must be written in either Bash, Ruby, Python, JavaScript, or AppleScript. Other languages aren't supported at this time, but we'll gladly take suggestions—drop us an email at [support@tuple.app](mailto:support@tuple.app).

## Adding metadata

As well as your trigger's code, we need three extra things to publish it in the directory: an **icon**, a **README**, and a **`config.json`** configuration file.

### Icon

This must:

* Be in PNG format
* Exist at `assets/icon.png`
* Be exactly 512×512 pixels in size

(DALL·E is pretty good at generating these.)

### README

This must:

* Be in Markdown
* Exist at `README.md`
* Contain a description of what your trigger does, and how to use it

### `config.json`

This must be a JSON file located at `config.json` containing metadata related to your trigger that we'll show in the directory. It's a JSON file in the following format:

```json theme={null}
{
  "name": "Trigger Name",
  "description": "Trigger Description",
  "platforms": ["macos", "windows"],
  "language": "bash"
}
```

It must have the following content:

| Key           | Type                                                     | Description                                                                                        |
| ------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `name`        | `string`                                                 | A snappy, concise name for your trigger, e.g. "Drop tables"                                        |
| `description` | `string`                                                 | A short description of what your trigger does, e.g. "Drops all your database tables in production" |
| `platforms`   | array of `macos`, `linux`, `windows`                     | The platforms your trigger will run on                                                             |
| `language`    | one of `bash`, `python`, `nodejs`, `ruby`, `applescript` | The scripting language your trigger is written in                                                  |

## Submitting your trigger

Once you've prepared your metadata, you're ready to submit your trigger to us for review. To do that:

* Fork the [tupleapp/community-triggers](https://github.com/tupleapp/community-triggers) repository into your own GitHub account
* Add your trigger, along with its metadata, to a new folder in the `triggers` directory
* Open a pull request to merge your fork into the main repository

From there, we'll run some automated tests to make sure your trigger is valid, and then we'll review it. If everything looks good, we'll merge your pull request and your trigger will be published in the directory.
