Agent skill

Trigger Getting Started

by VladSez in VladSez/easy-invoice-pdf

Bootstrap Trigger.dev into an existing project from scratch: authenticate the CLI, install @trigger.dev/sdk and @trigger.dev/build, write trigger.config.ts with the project ref and task dirs…

AGPL-3.0Auto-check: notesDevelopment

Install Trigger Getting Started

skills CLI
$ npx skills add VladSez/easy-invoice-pdf --skill trigger-getting-started -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install VladSez/easy-invoice-pdf trigger-getting-started --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/VladSez/easy-invoice-pdf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/trigger-getting-started .claude/skills/trigger-getting-started && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
trigger-getting-started
GitHub stars
1.1k
Token cost
~2k tokens
SKILL.md length
804 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Bootstrap Trigger.dev into an existing project from scratch: authenticate the CLI, install @trigger.dev/sdk and @trigger.dev/build, write trigger.config.ts with the project ref and task dirs…

  • Works in 7 steps: Authenticate (human step) → Install the packages → Write trigger.config.ts → …
  • Directory with a first task
  • SKILL.md covers Two steps need the human, Manual setup, Triggering from your app and Monorepos, plus 3 more sections
  • Calls npx and npm; needs TRIGGER_SECRET_KEY

What it does

Trigger Getting Started is an agent skill from VladSez/easy-invoice-pdf. Bootstrap Trigger.dev into an existing project from scratch: authenticate the CLI, install @trigger.dev/sdk and @trigger.dev/build, write trigger.config.ts with the project ref and task dirs, scaffold a /trigger directory with a first task, wire tsconfig and .gitignore, set TRIGGERSECRETKEY, and run the dev server. Load this when a project has no trigger.config.ts yet and the user asks to "add Trigger.dev", "set up Trigger.dev", "initialize Trigger.dev", or get a first task running, including in a monorepo. Once…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Monorepo tooling and Forms and invoices. It works with TypeScript and React. The repository describes itself as: Free & Open-Source Invoice Generator - No Sign-Up, No Ads, Instant PDF Export, 100% In-Browser, and Fully Customizable Templates. ⭐ Star the repo if you like it. The licence is AGPL-3.0.

When your agent uses it

  • Directory with a first task
  • Wire tsconfig and .gitignore
  • Set TRIGGERSECRETKEY
  • Run the dev server

Example prompts

  • “add Trigger.dev”
  • “set up Trigger.dev”
  • “initialize Trigger.dev”
  • “/trigger-getting-started”

Requirements

  • Node.js
  • A credential in TRIGGER_SECRET_KEY

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Authenticate (human step)
  2. Install the packages
  3. Write trigger.config.ts
  4. Add a first task
  5. Wire tsconfig and gitignore
  6. Set the secret key (human step)
  7. Run the dev server

What it can do on your machine

Read from SKILL.md and the folder at commit 19f688d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • trigger.dev
    • cloud.trigger.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • TRIGGER_SECRET_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Trigger Getting Started loads about 2k tokens when it runs. Until then it costs about 160 tokens; SKILL.md has 804 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~160
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:141
    # .env (or .env.local for Next.js)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from VladSez/easy-invoice-pdf at commit 19f688d, republished under its AGPL-3.0 licence (© VladSez). 804 words, ~1,960 tokens.

Download SKILL.mdSave it as .claude/skills/trigger-getting-started/SKILL.md (or your agent's skills folder).
name
trigger-getting-started
description
Bootstrap Trigger.dev into an existing project from scratch: authenticate the CLI, install @trigger.dev/sdk and @trigger.dev/build, write trigger.config.ts with the project ref and task dirs, scaffold a /trigger directory with a first task, wire tsconfig and .gitignore, set TRIGGER_SECRET_KEY, and run the dev server. Load this when a project has no trigger.config.ts yet and the user asks to "add Trigger.dev", "set up Trigger.dev", "initialize Trigger.dev", or get a first task running, including in a monorepo. Once the project is set up and you are writing task code, switch to the trigger-authoring-tasks skill.
type
core
library
trigger.dev
library_version
4.5.6
sources
docs/quick-start.mdx, docs/manual-setup.mdx, docs/config/config-file.mdx, docs/triggering.mdx

Getting started with Trigger.dev

Set up Trigger.dev in an existing project. The end state is: the SDK installed, a trigger.config.ts pointing at a project ref, a /trigger directory with at least one exported task, and trigger dev running so the task shows up in the dashboard.

The fastest path is the CLI's own wizard, which performs every mechanical step below and also offers to install the MCP server and these agent skills:

bash
npx trigger.dev init

Prefer init when you can. Do the manual steps further down when init does not fit (monorepos, an existing config to extend, or a non-interactive environment).

Two steps need the human

Most of setup is automatable, but two steps require a person and cannot be done headlessly. When you reach them, stop and ask the user to do them, then continue:

  1. Authenticating the CLI. npx trigger.dev login opens a browser for the user to sign in. If they have no account, point them to https://cloud.trigger.dev (or a self-hosted instance) first. You cannot complete this for them.
  2. The secret key and project ref. TRIGGER_SECRET_KEY and the project ref (proj_...) come from the dashboard. Ask the user to copy the DEV secret key from the project's API Keys page, and to pick or create the project so you have its ref. trigger init can select the project interactively once the user is logged in.

Treat these as handoffs: state exactly what you need, wait for the user, then resume.

Manual setup

1. Authenticate (human step)
bash
npx trigger.dev login
# self-hosted:
npx trigger.dev login --api-url https://your-trigger-instance.com
2. Install the packages

@trigger.dev/sdk is a runtime dependency; @trigger.dev/build is a dev dependency. Pin both to the same version as the trigger.dev CLI you run; the CLI warns on a mismatch during dev/deploy.

bash
npm add @trigger.dev/sdk@latest
npm add --save-dev @trigger.dev/build@latest
3. Write trigger.config.ts

Create it in the project root (or trigger.config.mjs for JavaScript). The project ref and dirs are the only required fields.

ts
import { defineConfig } from "@trigger.dev/sdk";

export default defineConfig({
  project: "<project ref>", // e.g. "proj_abc123", from the dashboard
  dirs: ["./src/trigger"], // where your tasks live
  maxDuration: 3600,
  retries: {
    enabledInDev: false,
    default: {
      maxAttempts: 3,
      factor: 2,
      minTimeoutInMs: 1000,
      maxTimeoutInMs: 10000,
      randomize: true,
    },
  },
});

Use the Bun runtime by adding runtime: "bun". Build extensions (prismaExtension, puppeteer, additionalFiles, etc.) come from @trigger.dev/build and go in build.extensions.

4. Add a first task

Create the directory that matches dirs and export a task from it. Every task must be a named export with a project-unique id.

ts
// src/trigger/example.ts
import { task } from "@trigger.dev/sdk";

export const helloWorld = task({
  id: "hello-world",
  run: async (payload: { name: string }) => {
    return { message: `Hello ${payload.name}!` };
  },
});
5. Wire tsconfig and gitignore

Add trigger.config.ts to the include array in tsconfig.json, and add .trigger to .gitignore (the CLI writes local dev state there).

jsonc
// tsconfig.json
{ "include": ["trigger.config.ts" /* ...existing */] }
bash
# .gitignore
.trigger
6. Set the secret key (human step)

For triggering from your own code, set TRIGGER_SECRET_KEY to the DEV key from the dashboard's API Keys page. Self-hosted users also set TRIGGER_API_URL.

bash
# .env (or .env.local for Next.js)
TRIGGER_SECRET_KEY=tr_dev_xxxxxxxx
7. Run the dev server
bash
npx trigger.dev dev

Leave it running. Tasks register with the dashboard, where the user can fire a test run from the task's test page. On first run the CLI offers to install the MCP server and agent skills; recommend both.

Triggering from your app

Once a task exists, trigger it from backend code with a type-only import so the task code is never bundled into your app. Trigger by id, not by calling the task object.

ts
import { tasks } from "@trigger.dev/sdk";
import type { helloWorld } from "@/trigger/example"; // type-only

const handle = await tasks.trigger<typeof helloWorld>("hello-world", {
  name: "Ada",
});

TRIGGER_SECRET_KEY must be set wherever this runs. Framework specifics live in the Next.js / Remix / Node.js guides.

Show full SKILL.md (302 more words)Show less

Monorepos

Two layouts, both supported: put tasks in a shared package (@repo/tasks with its own trigger.config.ts, consumed via workspace:*), or install Trigger.dev directly in the app that needs it. Run trigger dev from the directory that holds trigger.config.ts. See the manual setup docs for full Turborepo examples before scaffolding either.

Common mistakes

  1. Trying to do the human-only steps headlessly. You cannot complete trigger login or read the dashboard secret key for the user.

    • Wrong: spawning trigger login and waiting on it to finish in an agent session.
    • Correct: ask the user to log in and to paste the DEV key, then continue.
  2. Mismatched CLI and SDK versions. A trigger.dev CLI on a different major than @trigger.dev/sdk breaks dev/deploy.

    • Wrong: npx trigger.dev dev against an old pinned SDK.
    • Correct: keep trigger.dev, @trigger.dev/sdk, and @trigger.dev/build on the same version.
  3. Importing from @trigger.dev/sdk/v3 or using client.defineJob(). Both are old.

    • Correct: always import from @trigger.dev/sdk; define work with task().
  4. Tasks not exported, or outside dirs. A task that is not a named export inside a configured directory will not be picked up.

    • Correct: export const ... = task({ ... }) in a file under a dirs path.
  5. Importing the task instance into backend code. This bundles the task.

    • Wrong: import { helloWorld } from "@/trigger/example" in a route handler.
    • Correct: import type { helloWorld } plus tasks.trigger<typeof helloWorld>("hello-world", payload).
  6. Forgetting TRIGGER_SECRET_KEY. Triggering from your app fails without it; the dev server itself works once the CLI is logged in.

References

Sibling skills:

  • trigger-authoring-tasks for writing the tasks themselves once setup is done: retries, waits, queues, scheduled tasks, triggering, and the full trigger.config.ts.
  • trigger-realtime-and-frontend for showing live run status in a frontend.
  • trigger-authoring-chat-agent and trigger-chat-agent-advanced for building AI chat agents.

Docs:

Version

Generated for @trigger.dev/sdk 4.5.6. Re-run the trigger.dev skills installer after upgrading.

© VladSez, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .cursor/skills/trigger-getting-started of VladSez/easy-invoice-pdf.

Open the folder on GitHubat commit 19f688d

Compare with similar skills

Trigger Getting Started next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Trigger Getting Started compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Trigger Getting Started this skillVladSez/easy-invoice-pdf1.1k—~2kAutomated safety check: NotesAGPL-3.0
Pnpm Engineteambit/bit18k—~1.9kAutomated safety check: PassCustom licence
Qovery Console StandardsQovery/console227—~924Automated safety check: PassMIT
Typescript Tooling MigrationArize-ai/phoenix12k—~2.8kAutomated safety check: PassApache-2.0
Opentrons TypescriptOpentrons/opentrons521—~3.7kAutomated safety check: PassApache-2.0
Generate Subsystem Skillsllama-farm/llamafarm837—~1.1kAutomated safety check: NotesApache-2.0

Similar skills

  • Pnpm Engine

    teambit/bit

    Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Qovery Console coding standards, architecture guidelines, naming conventions, testing practices, and development workflows.

    227 GitHub stars~924 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Migrate or upgrade TypeScript tooling in the Phoenix monorepo.

    12k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Opentrons Typescript

    Opentrons/opentrons

    TypeScript conventions, React patterns, testing, styling, and import rules for the Opentrons monorepo JS/TS packages.

    521 GitHub stars~3.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Generate Subsystem Skills

    llama-farm/llamafarm

    Generate specialized skills for each subsystem in the monorepo.

    837 GitHub stars~1.1k tokensUpdated 3 mo ago
    DevelopmentAuto-check: notes
  • Template Code Generator

    ArabelaTso/Skills-4-SE

    Generate boilerplate code and project templates/skeletons automatically.

    253 GitHub stars~2.4k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from VladSez/easy-invoice-pdf

All 8 skills in this repo
  • Openseo Release Notes

    VladSez/easy-invoice-pdf

    Cut an OpenSEO release — bump the version, draft user-facing release notes from commits since the last tag, run a review + subagent-verification pass, and open a "release: vX.X.X" PR.

    1.1k GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Changelog Maintenance

    VladSez/easy-invoice-pdf

    Maintain a clear and informative changelog for software releases.

    1.1k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Trigger Authoring Chat Agent

    VladSez/easy-invoice-pdf

    Author and run a durable AI chat agent with chat.agent from @trigger.dev/sdk/ai: the per-turn run loop, why you MUST spread ...chat.toStreamTextOptions() first, returning a StreamTextResult vs…

    1.1k GitHub stars~1k tokensUpdated 4 days ago
    Auto-check passed
  • Merge Ready

    VladSez/easy-invoice-pdf

    Take a branch from "code exists (or is about to)" to "ready for Ben's final review" — multi-axis subagent review with verified findings, fixes, ci:check, checkpoint commits, and an updated PR.

    1.1k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Better UI

    VladSez/easy-invoice-pdf

    Polishes and improves the UI in your project. An agent skill from VladSez/easy-invoice-pdf.

    1.1k GitHub starsUsed in 5 repos~1.9k tokens
    Auto-check passed
  • Trigger Authoring Tasks

    VladSez/easy-invoice-pdf

    Covers writing backend Trigger.dev tasks with @trigger.dev/sdk: defining task() and schemaTask(), the run function and its ctx, retries, waits, queues and concurrency, idempotency keys, run…

    1.1k GitHub stars~1k tokensUpdated 4 days ago
    Auto-check passed

Works with

Questions about Trigger Getting Started

What does Trigger Getting Started do?

Bootstrap Trigger.dev into an existing project from scratch: authenticate the CLI, install @trigger.dev/sdk and @trigger.dev/build, write trigger.config.ts with the project ref and task dirs…. Trigger Getting Started is an agent skill from VladSez/easy-invoice-pdf.gitignore, set TRIGGERSECRETKEY, and run the dev server.

When should I use Trigger Getting Started?

Trigger Getting Started fits situations like: directory with a first task; wire tsconfig and .gitignore; set TRIGGERSECRETKEY; run the dev server.

How do I install Trigger Getting Started in Claude Code?

Run `npx skills add VladSez/easy-invoice-pdf --skill trigger-getting-started -a claude-code`. Or copy the skill folder (.cursor/skills/trigger-getting-started in VladSez/easy-invoice-pdf) into .claude/skills/trigger-getting-started in your project. Claude Code loads it when a task matches its description.

How do I install Trigger Getting Started in Codex?

Run `npx skills add VladSez/easy-invoice-pdf --skill trigger-getting-started -a codex`. Or copy the skill folder (.cursor/skills/trigger-getting-started in VladSez/easy-invoice-pdf) into .agents/skills/trigger-getting-started in your project. Codex loads it when a task matches its description.

Can I use Trigger Getting Started in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add VladSez/easy-invoice-pdf --skill trigger-getting-started -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/trigger-getting-started, .gemini/skills/trigger-getting-started, .github/skills/trigger-getting-started and .opencode/skills/trigger-getting-started in your project.

What does Trigger Getting Started need to run?

Going by SKILL.md and its folder, Trigger Getting Started needs the command-line tools its instructions call (npx and npm) and credentials named TRIGGER_SECRET_KEY. Our summary lists: Node.js; A credential in TRIGGER_SECRET_KEY.

Does Trigger Getting Started access the network?

SKILL.md names 2 domains. As links in the text: trigger.dev and cloud.trigger.dev. This is read from the text; nothing was executed.

Is Trigger Getting Started safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Trigger Getting Started use?

Trigger Getting Started is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Trigger Getting Started use?

About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Trigger Getting Started?

Skills that share tags, products or a category with Trigger Getting Started: Pnpm Engine (teambit/bit, 18k stars), Qovery Console Standards (Qovery/console, 227 stars), Typescript Tooling Migration (Arize-ai/phoenix, 12k stars) and Opentrons Typescript (Opentrons/opentrons, 521 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Trigger Getting Started?

VladSez (a GitHub user) maintains it in VladSez/easy-invoice-pdf, which has 1,104 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 3, 2026.

Source: VladSez/easy-invoice-pdf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.