Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create a minimal working Lindy AI agent example. Use when starting a new Lindy integration, testing your setup, or learning basic Lindy API patterns. Trigger with phrases like "lindy hello world", "lindy example", "lindy quick start", "simple lindy agent".
.claude/skills/majiayu000-lindy-hello-world/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -19% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -29% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -33% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 51% | 0% |
Minimal working example demonstrating core Lindy AI agent functionality.
lindy-install-auth setupCreate a new file for your hello world example.
typescriptimport { Lindy } from '@lindy-ai/sdk'; const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY, });
typescriptasync function main() { // Create a simple AI agent const agent = await lindy.agents.create({ name: 'Hello World Agent', description: 'My first Lindy agent', instructions: 'You are a helpful assistant that greets users.', }); console.log(`Created agent: ${agent.id}`); // Run the agent with a simple task const result = await lindy.agents.run(agent.id, { input: 'Say hello to the world!', }); console.log(`Agent response: ${result.output}`); } main().catch(console.error);
Created agent: agt_abc123
Agent response: Hello, World! I'm your new Lindy AI assistant.| Error | Cause | Solution | |-------|-------|----------| | Import Error | SDK not installed | Verify with npm list @lindy-ai/sdk | | Auth Error | Invalid credentials | Check environment variable is set | | Timeout | Network issues | Increase timeout or check connectivity | | Rate Limit | Too many requests | Wait and retry with exponential backoff |
typescriptimport { Lindy } from '@lindy-ai/sdk'; const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY, }); async function main() { const agent = await lindy.agents.create({ name: 'Greeting Agent', instructions: 'Greet users warmly and helpfully.', }); const result = await lindy.agents.run(agent.id, { input: 'Hello!', }); console.log(result.output); } main().catch(console.error);
pythonfrom lindy import Lindy client = Lindy() agent = client.agents.create( name="Greeting Agent", instructions="Greet users warmly and helpfully." ) result = client.agents.run(agent.id, input="Hello!") print(result.output)
Proceed to lindy-local-dev-loop for development workflow setup.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 17,745 | 11,148 | -37% | 1 | 1 | 0% | 2,383 | 2,550 | +7% | 0 | 0 | — |
case-01 | fail→pass | 14,986 | 9,458 | -37% | 1 | 1 | 0% | 2,022 | 1,643 | -19% | 0 | 0 | — |
case-02 | fail→pass | 18,653 | 10,909 | -42% | 1 | 1 | 0% | 2,685 | 1,908 | -29% | 0 | 0 | — |
case-20 | pass→pass | 21,070 | 20,148 | -4% | 1 | 1 | 0% | 2,858 | 3,811 | +33% | 0 | 0 | — |
case-04 | pass→pass | 14,556 | 10,326 | -29% | 1 | 1 | 0% | 1,660 | 1,713 | +3% | 0 | 0 | — |
case-05 | pass→pass | 13,377 | 8,410 | -37% | 1 | 1 | 0% | 1,807 | 1,385 | -23% | 0 | 0 | — |
case-06 | fail→pass | 11,257 | 9,120 | -19% | 1 | 1 | 0% | 1,954 | 1,309 | -33% | 0 | 0 | — |
case-07 | fail→pass | 4,740 | 2,422 | -49% | 1 | 1 | 0% | 734 | 1,107 | +51% | 0 | 0 | — |
case-08 | fail→pass | 12,093 | 6,952 | -43% | 1 | 1 | 0% | 1,992 | 1,059 | -47% | 0 | 0 | — |
case-09 | pass→pass | 11,203 | 6,557 | -41% | 1 | 1 | 0% | 1,075 | 974 | -9% | 0 | 0 | — |
case-10 | fail→pass | 6,209 | 7,220 | +16% | 1 | 1 | 0% | 1,121 | 1,056 | -6% | 0 | 0 | — |
case-11 | fail→pass | 11,069 | 2,015 | -82% | 1 | 1 | 0% | 1,806 | 1,037 | -43% | 0 | 0 | — |
case-12 | pass→pass | 15,885 | 8,104 | -49% | 1 | 1 | 0% | 1,856 | 1,159 | -38% | 0 | 0 | — |
case-13 | pass→pass | 17,621 | 18,762 | +6% | 1 | 1 | 0% | 2,692 | 3,618 | +34% | 0 | 0 | — |
case-14 | fail→pass | 15,484 | 1,600 | -90% | 1 | 1 | 0% | 1,776 | 930 | -48% | 0 | 0 | — |
case-15 | pass→pass | 29,931 | 2,204 | -93% | 1 | 1 | 0% | 5,469 | 1,139 | -79% | 0 | 0 | — |
case-16 | pass→pass | 11,911 | 12,526 | +5% | 1 | 1 | 0% | 2,267 | 2,817 | +24% | 0 | 0 | — |
case-17 | pass→pass | 8,001 | 8,018 | +0% | 1 | 1 | 0% | 1,406 | 1,298 | -8% | 0 | 0 | — |
case-18 | fail→pass | 6,851 | 1,652 | -76% | 1 | 1 | 0% | 1,114 | 980 | -12% | 0 | 0 | — |
case-19 | fail→pass | 8,999 | 1,782 | -80% | 1 | 1 | 0% | 614 | 1,012 | +65% | 0 | 0 | — |
case-21 | pass→pass | 20,931 | 26,132 | +25% | 1 | 1 | 0% | 3,039 | 5,968 | +96% | 0 | 0 | — |
case-22 | pass→pass | 17,832 | 9,270 | -48% | 1 | 1 | 0% | 3,325 | 2,477 | -26% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.