Skip to docs content
Browse documentation
On this page

Sharing packages

Minion has no public package catalog yet. How to reuse packages inside your organization, and what to do when you need one somewhere else.

Minion doesn't have a public package catalog. You can't publish a package for other organizations, browse or fork someone else's package, or rate a listing. There are no public profile pages. Every package belongs to one organization and is only visible inside it.

Reuse packages inside your organization

Any agent or member in your organization can use any of its saved packages:

  • Find them with search, or list them with minion.packages.list().
  • Read one with minion.packages.get({ name }) before you call it. You get the README, the export signatures and the jobs.
  • Import an export by name from execute or from another package:
import { summarize } from 'minion:@your-org/daily-digest/summarize'

export default async function main(params) {
	return await summarize(params)
}

The path after the package name is the export key from its package.json exports. With no path you get the . export. Imports only resolve inside your own organization (@<org slug>/...). They always pick up the package's current runnable version. See Execute .

Storage stays with the package

When you import a package, its code still uses its own storage. Your code can't reach into that storage directly. Each run gets an access token for the packages Minion actually bundled into it, and only that package's own runtime module holds its token. So importing a package lets you call its exports without handing your code its data. See Package storage and SQL .

Sharing across organizations

Not available yet. Sharing a package with another organization, and calling a package export over HTTP with a scoped token, are planned but not scheduled (tracked as minion-4nc). A public gallery for team skills would come with it (minion-tkg.5).

Until then:

  • To use a package in a second organization, copy its files and save them there with minion.packages.save. Rename it to @<other org slug>/<name> and change any minion:@your-org/... imports to point at packages in the new organization.
  • Re-create any secrets and integrations it needs in the new organization. Secrets, integrations and package storage don't move with the code.
  • To give someone outside your organization access to everything, invite them to it. They'll see all its packages.