Lindy Hello WorldSAFE
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Overview
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
4f83675ca38aOBSERVED · 2026-10-09Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: lindy-hello-world description: 'Create your first Lindy AI agent with a real trigger and action. Use when starting with Lindy, testing your setup, or learning basic agent workflow patterns. Trigger with phrases like "lindy hello world", "lindy example", "lindy quick start", "simple lindy agent", "first lindy". ' allowed-tools: Read, Write, Edit, Bash(curl:*) version: 1.20.0 license: MIT author: Jeremy Longshore <[email protected]> tags: - saas - lindy - api - testing compatibility: Designed for Claude Code --- # Lindy Hello World ## Overview Build a minimal Lindy AI agent: **Webhook Received** trigger -> LLM processing -> **Slack notification**. Demonstrates the three core building blocks every Lindy agent uses: Trigger, Agent Step (prompt + model + skills), and Action. ## Prerequisites - Lindy account at - Slack workspace connected (or Gmail for email variant) - Completed `lindy-install-auth` setup ## Instructions ### Step 1: Create Agent via Dashboard 1. Click **"New Agent"** at 2. In the prompt field ("How can I help you?"), type: ``` When I send a webhook, summarize the message and post it to Slack ``` 3. Agent Builder auto-generates the workflow with trigger + action nodes ### Step 2: Configure the Webhook Trigger 1. Click the trigger node at the top of the workflow canvas 2. Select **Webhook Received** 3. Copy the generated URL: ``` https://public.lindy.ai/api/v1/webhooks/<unique-id> ``` 4. Click **Generate Secret** — copy immediately (shown once) ### Step 3: Add the Slack Action 1. Click **"+"** to add a step 2. Search for **Slack Send Channel Message** 3. Authorize your Slack workspace when prompted 4. Configure fields: - **Channel**: `#general` (or test channel) - **Message** field mode: **AI Prompt** - Instruction: ``` Summarize the webhook payload in one sentence. Payload: {{webhook_received.request.body}} ``` ### Step 4: Set the Agent Prompt Open **Settings > Prompt**: ``` You are a webhook summarizer. When you receive a webhook payload, extract the key information and create a concise one-sentence summary. Be factual and specific. Do not add opinions or speculation. ``` ### Step 5: Test It ```bash curl -X POST "https://public.lindy.ai/api/v1/webhooks/YOUR_ID" \ -H "Authorization: Bearer YOUR_SECRET" \ -H "Content-Type: application/json" \ -d '{ "event": "order.created", "customer": "Jane Doe", "amount": 149.99, "items": ["Widget Pro", "Adapter Cable"] }' ``` Expected Slack message: > Jane Doe placed a $149.99 order for Widget Pro and Adapter Cable. ### Step 6: Verify in Dashboard Navigate to the **Tasks** tab in your agent view. Confirm status shows **Completed**. Click into the task to see each step's input/output for debugging. ## Output The finished agent accepts the test webhook, creates one completed Lindy task, and posts one concise Slack summary without exposing the webhook secret. Keep the agent URL, task ID, and sanitized test payload as the setup receipt so the workflow can be retested after changes. ## Examples Send an `order.created` event to a test-only webhook and confirm that the configured Slack channel receives “Jane Doe placed a $149.99 order for Widget Pro and Adapter Cable.” If the request returns 401, replace the placeholder secret with the webhook secret generated for that same agent rather than a different workspace credential. ## Agent Anatomy | Component | Purpose | Hello World Value | |-----------|---------|-------------------| | **Prompt** | Core behavioral instructions | "Summarize webhook payloads" | | **Model** | AI engine powering decisions | Default (GPT-4 / Claude / Gemini) | | **Skills** | Available actions & tools | Slack Send Channel Message | | **Exit Conditions** | When the task is "done" | Message sent successfully | ## Webhook Data Variables | Variable | Contents | |----------|----------| | `{{webhook_received.request.body}}` | Full JSON payload | | `{{webhook_received.request.headers}}` | HTTP request headers | | `{{webhook_received.request.query}}` | URL query parameters | ## Field Configuration Modes | Mode | Behavior | Credit Cost | |------|----------|-------------| | **Auto** | Agent determines value from context | Standard | | **AI Prompt** | Natural language instructions generate content | Standard | | **Set Manually** | Exact value, no AI processing | Lower | ## Variant: Email Instead of Slack Replace the Slack action with **Gmail Send Email**: - **To**: Set manually or reference a webhook field - **Subject**: AI Prompt — `"Summary: {{webhook_received.request.body.event}}"` - **Body**: AI Prompt — `"Summarize this event: {{webhook_received.request.body}}"` ## Error Handling | Issue | Cause | Solution | |-------|-------|----------| | Webhook returns 401 | Missing Authorization header | Add `Bearer <secret>` header | | Slack message not sent | Channel not authorized | Re-authorize Slack in Lindy | | Task shows "Failed" | Action misconfigured | Check field references in step config | | No task created | Agent not active | Publish/activate the agent | | Empty summary | Payload not reaching LLM | Verify `{{webhook_received.request.body}}` reference | ## Cost ~1-3 credits per invocation on basic models. Free tier (400 credits/month) supports ~130-400 test runs per month. ## Resources - [Getting Started 101](https://www.lindy.ai/academy-lessons/getting-started-101) - [Webhook Triggers Academy](https://www.lindy.ai/academy-lessons/webhook-triggers) - [Lindy Documentation](https://docs.lindy.ai) ## Next Steps Proceed to `lindy-core-workflow-a` for a full multi-step agent workflow.
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
4f83675ca38afull audit observations/trust-audit/skill/jeremylongshore__lindy-hello-world.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-09 | 4f83675ca38a | SAFE | B | 89 | first audit |
Questions
What does the Lindy Hello World skill do?
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Is Lindy Hello World safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Lindy Hello World access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Lindy Hello World work with?
Its documentation mentions claude-code. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (4f83675ca38a), read on 2026-10-09. The repository is watched, and a new audit runs when it changes — this is the first audit.