Setting up Your Repository
Caido uses GitHub to download and distribute plugin packages. To share your plugin with the community, you’ll first need to set up a Github repository that meets Caido’s requirements.
1. Create Your Project
Let's create a new project. Run the following command in your terminal and follow the instructions:
pnpm create @caido-community/plugin
This command will help you generate the basic structure and files needed for your plugin project.
If you’re new to Caido or want more detailed instructions, visit the Getting Started section for additional guidance on using this setup process .
2. Create a Repository
Now we'll create a repository on Github. This repository will host your plugin code, and will be used to distribute your plugin package in the Caido Store.
- Visit https://github.com/new
- Give it a name and a description
- Click the
Create repository
button - In your terminal, navigate to your project folder (created in the step 1)
cd my-plugin
- Connect your local project to your Github repository
git init
git add .
git commit -m "init"
git branch -M main
git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPO_NAME.git
git push -u origin main
INFO
The steps above will create a repository under your own account.
If you would like to host your repository under the caido-community organization instead, you can request a repository on our Discord server.
3. Generate a key-pair
Plugin packages must be digitally signed to be installable in Caido.
To sign your plugin package, you need to generate a public/private key-pair.
INFO
Plugin package signing is done using Ed25519 public-key signatures.
Generate the private key
Run the following command to generate a private key:
openssl genpkey -algorithm ed25519 -out private.pem
This will create a file private.pem
with the private key. We will use this key to sign our plugin package when we create a release.
WARNING
Keep this key private! Ideally, you should encrypt it or store it in Github Action Secrets.
The file private.pem
will contain the following format:
-----BEGIN PRIVATE KEY-----
<SOME BASE64 DATA ON ONE LINE>
-----END PRIVATE KEY-----
Generate the public key
Run the following command to generate a public key:
openssl pkey -in private.pem -pubout --out public.pem
This will create a file public.pem
with the public key. We will use this key when submitting the plugin package to the store.
The file public.pem
will contain the following format:
-----BEGIN PUBLIC KEY-----
<SOME BASE64 DATA ON ONE LINE>
-----END PUBLIC KEY-----
4. Create a release
Now that your repository and key-pair are ready, it’s time to create a release!
- Create a Github Action Secret called
PRIVATE_KEY
with the content of the private key generated in step 3. - Go to the
Actions
tab of your repository and trigger theRelease
workflow.
This will create a release with the version specified in your project's manifest.json file.
What's next?
Now that you have a repository and a release, you can submit your plugin to the Caido Store for review.