Configure deployment pipelines for Lindy AI integrations. Use when deploying to production, setting up staging environments, or automating agent deployments. Trigger with phrases like "deploy lindy", "lindy deployment", "lindy production deploy", "release lindy agents".
/plugin marketplace add jeremylongshore/claude-code-plugins-plus-skills/plugin install lindy-pack@claude-code-plugins-plusThis skill is limited to using the following tools:
Configure deployment pipelines for Lindy AI agent integrations.
lindy-ci-integration)# .github/workflows/lindy-deploy.yml
name: Deploy Lindy Integration
on:
push:
branches: [main]
workflow_dispatch:
env:
LINDY_ENVIRONMENT: production
jobs:
deploy:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Run pre-deploy checks
run: npm run predeploy
env:
LINDY_API_KEY: ${{ secrets.LINDY_PROD_API_KEY }}
- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: '--prod'
- name: Sync Lindy agents
run: npm run sync:agents
env:
LINDY_API_KEY: ${{ secrets.LINDY_PROD_API_KEY }}
- name: Notify Slack
if: success()
uses: slackapi/slack-github-action@v1
with:
payload: |
{
"text": "Lindy integration deployed successfully"
}
// scripts/sync-agents.ts
import { Lindy } from '@lindy-ai/sdk';
import fs from 'fs';
interface AgentConfig {
id?: string;
name: string;
instructions: string;
tools: string[];
}
async function syncAgents() {
const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY });
// Load agent configurations
const configPath = './agents/config.json';
const configs: AgentConfig[] = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
for (const config of configs) {
if (config.id) {
// Update existing agent
await lindy.agents.update(config.id, {
name: config.name,
instructions: config.instructions,
tools: config.tools,
});
console.log(`Updated agent: ${config.id}`);
} else {
// Create new agent
const agent = await lindy.agents.create({
name: config.name,
instructions: config.instructions,
tools: config.tools,
});
console.log(`Created agent: ${agent.id}`);
// Update config with new ID
config.id = agent.id;
}
}
// Save updated config
fs.writeFileSync(configPath, JSON.stringify(configs, null, 2));
}
syncAgents().catch(console.error);
# .github/workflows/lindy-deploy-staging.yml
name: Deploy to Staging
on:
push:
branches: [develop]
jobs:
deploy:
environment: staging
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run build
- run: npm run deploy:staging
env:
LINDY_API_KEY: ${{ secrets.LINDY_STAGING_API_KEY }}
// scripts/rollback.ts
import { Lindy } from '@lindy-ai/sdk';
async function rollback(agentId: string, version: string) {
const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY });
// Get version history
const versions = await lindy.agents.versions.list(agentId);
const targetVersion = versions.find(v => v.id === version);
if (!targetVersion) {
throw new Error(`Version ${version} not found`);
}
// Restore to previous version
await lindy.agents.versions.restore(agentId, version);
console.log(`Rolled back agent ${agentId} to version ${version}`);
}
rollback(process.argv[2], process.argv[3]).catch(console.error);
| Issue | Cause | Solution |
|---|---|---|
| Deploy failed | Build error | Check build logs |
| Agent sync failed | Invalid config | Validate JSON |
| Rollback failed | Version missing | Check version history |
# Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY dist ./dist
ENV NODE_ENV=production
CMD ["node", "dist/index.js"]
# Deploy job
- name: Build and push Docker image
run: |
docker build -t my-lindy-app:${{ github.sha }} .
docker push my-lindy-app:${{ github.sha }}
Proceed to lindy-webhooks-events for event handling.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.