Agent skill

Twinmind Local Dev Loop

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Set up local development workflow with TwinMind API integration.

MITAuto-check: notesTesting & QA

Install Twinmind Local Dev Loop

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill twinmind-local-dev-loop -a claude-code

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

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace twinmind-local-dev-loop --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/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/saas-packs/twinmind-pack/skills/twinmind-local-dev-loop .claude/skills/twinmind-local-dev-loop && 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
twinmind-local-dev-loop
GitHub stars
2.8k
Token cost
~2k tokens
SKILL.md length
190 words
Files
1
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Set up local development workflow with TwinMind API integration.

  • Works in 7 steps: Project Setup → Configure Environment → Create TwinMind Client → …
  • Building applications that integrate TwinMind transcription
  • SKILL.md covers Overview, Prerequisites, Instructions and Output, plus 5 more sections
  • Calls npm and npx; reaches api.twinmind.com; needs TWINMIND_API_KEY and TWINMIND_WEBHOOK_SECRET

What it does

Twinmind Local Dev Loop is an agent skill from jeremylongshore/tons-of-skills-marketplace. Set up local development workflow with TwinMind API integration. Use when building applications that integrate TwinMind transcription, testing API calls locally, or developing meeting automation tools. Trigger with phrases like "twinmind dev setup", "twinmind local development", "twinmind API testing", "build with twinmind".

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. Compatibility notes: Designed for Claude Code

It sits in Testing & QA, covering Third-party API integration, API testing and Transcription. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Building applications that integrate TwinMind transcription
  • Testing API calls locally
  • Developing meeting automation tools
  • With phrases like twinmind dev setup

Example prompts

  • “twinmind dev setup”
  • “twinmind local development”
  • “twinmind API testing”
  • “/twinmind-local-dev-loop”

Requirements

  • Python 3
  • Node.js
  • A credential in TWINMIND_API_KEY
  • A credential in TWINMIND_WEBHOOK_SECRET
  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(npm:*), Bash(pip:*), Bash(curl:*)

Workflow steps

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

  1. Project Setup
  2. Configure Environment
  3. Create TwinMind Client
  4. Create Dev Runner Script
  5. Configure Dev Scripts
  6. Create Test Fixtures
  7. Run Development Loop

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(npm:*)
    • Bash(pip:*)
    • Bash(curl:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.twinmind.com

    Also links to:

    • zod.dev

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

  • Credentials

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

    • TWINMIND_API_KEY
    • TWINMIND_WEBHOOK_SECRET

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

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Twinmind Local Dev Loop loads about 2k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 190 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
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:62
    cat > .env << 'EOF'
  • NoteMentions a .env fileSKILL.md:70
    echo ".env" >> .gitignore
  • NoteMentions a .env fileSKILL.md:296
    | API key missing | .env not loaded | Check dotenv import |
  • NoteMentions a .env fileSKILL.md:318
    ├── .env                    # Environment (gitignored)

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 jeremylongshore/tons-of-skills-marketplace at commit 80f86df, republished under its MIT licence (© jeremylongshore). 190 words, ~2,049 tokens.

Download SKILL.mdSave it as .claude/skills/twinmind-local-dev-loop/SKILL.md (or your agent's skills folder).
name
twinmind-local-dev-loop
description
Set up local development workflow with TwinMind API integration. Use when building applications that integrate TwinMind transcription, testing API calls locally, or developing meeting automation tools. Trigger with phrases like "twinmind dev setup", "twinmind local development", "twinmind API testing", "build with twinmind".
allowed-tools
Read, Write, Edit, Bash(npm:*), Bash(pip:*), Bash(curl:*)
compatibility
Designed for Claude Code
version
1.13.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, twinmind, api, testing, transcription

TwinMind Local Dev Loop

Overview

Configure a productive local development environment for TwinMind API integration.

Prerequisites

  • TwinMind Pro or Enterprise account (API access)
  • Node.js 18+ or Python 3.10+
  • API key from TwinMind dashboard
  • Local development environment

Instructions

Step 1: Project Setup
bash
set -euo pipefail
# Create project directory
mkdir twinmind-integration && cd twinmind-integration

# Initialize Node.js project
npm init -y

# Install dependencies
npm install dotenv axios zod typescript ts-node @types/node

# Initialize TypeScript
npx tsc --init
Step 2: Configure Environment
bash
# Create environment file
cat > .env << 'EOF'
TWINMIND_API_KEY=your-api-key-here
TWINMIND_API_URL=https://api.twinmind.com/v1
TWINMIND_WEBHOOK_SECRET=your-webhook-secret
NODE_ENV=development
EOF

# Add to .gitignore
echo ".env" >> .gitignore
echo "node_modules" >> .gitignore
Step 3: Create TwinMind Client
typescript
// src/twinmind/client.ts
import axios, { AxiosInstance } from 'axios';
import { z } from 'zod';

// Response schemas
const TranscriptSchema = z.object({
  id: z.string(),
  text: z.string(),
  duration_seconds: z.number(),
  language: z.string(),
  speakers: z.array(z.object({
    id: z.string(),
    name: z.string().optional(),
    segments: z.array(z.object({
      start: z.number(),
      end: z.number(),
      text: z.string(),
      confidence: z.number(),
    })),
  })),
  created_at: z.string(),
});

const SummarySchema = z.object({
  id: z.string(),
  transcript_id: z.string(),
  summary: z.string(),
  action_items: z.array(z.object({
    text: z.string(),
    assignee: z.string().optional(),
    due_date: z.string().optional(),
  })),
  key_points: z.array(z.string()),
});

export type Transcript = z.infer<typeof TranscriptSchema>;
export type Summary = z.infer<typeof SummarySchema>;

export class TwinMindClient {
  private client: AxiosInstance;

  constructor(apiKey: string, baseUrl?: string) {
    this.client = axios.create({
      baseURL: baseUrl || 'https://api.twinmind.com/v1',
      headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json',
      },
      timeout: 30000,  # 30000: 30 seconds in ms
    });
  }

  async healthCheck(): Promise<boolean> {
    const response = await this.client.get('/health');
    return response.status === 200;  # HTTP 200 OK
  }

  async transcribe(audioUrl: string, options?: {
    language?: string;
    diarization?: boolean;
    model?: 'ear-3' | 'ear-2';
  }): Promise<Transcript> {
    const response = await this.client.post('/transcribe', {
      audio_url: audioUrl,
      language: options?.language || 'auto',
      diarization: options?.diarization ?? true,
      model: options?.model || 'ear-3',
    });
    return TranscriptSchema.parse(response.data);
  }

  async summarize(transcriptId: string): Promise<Summary> {
    const response = await this.client.post('/summarize', {
      transcript_id: transcriptId,
    });
    return SummarySchema.parse(response.data);
  }

  async search(query: string, options?: {
    limit?: number;
    date_from?: string;
    date_to?: string;
  }): Promise<Transcript[]> {
    const response = await this.client.get('/search', {
      params: {
        q: query,
        limit: options?.limit || 10,
        date_from: options?.date_from,
        date_to: options?.date_to,
      },
    });
    return z.array(TranscriptSchema).parse(response.data.results);
  }
}
Step 4: Create Dev Runner Script
typescript
// src/dev.ts
import 'dotenv/config';
import { TwinMindClient } from './twinmind/client';

async function main() {
  const client = new TwinMindClient(process.env.TWINMIND_API_KEY!);

  // Health check
  console.log('Checking TwinMind API health...');
  const healthy = await client.healthCheck();
  console.log(`API Status: ${healthy ? 'Healthy' : 'Unhealthy'}`);

  // Example: Transcribe audio file
  // const transcript = await client.transcribe('https://example.com/meeting.mp3');
  // console.log('Transcript:', transcript);

  // Example: Generate summary
  // const summary = await client.summarize(transcript.id);
  // console.log('Summary:', summary);

  // Example: Search memory vault
  // const results = await client.search('budget review');
  // console.log('Search results:', results);
}

main().catch(console.error);
Step 5: Configure Dev Scripts
json
// package.json scripts
{
  "scripts": {
    "dev": "ts-node src/dev.ts",
    "build": "tsc",
    "test": "jest",
    "lint": "eslint src/**/*.ts",
    "typecheck": "tsc --noEmit"
  }
}
Step 6: Create Test Fixtures
typescript
// tests/fixtures/mock-responses.ts
export const mockTranscript = {
  id: 'tr_test_123',
  text: 'Welcome to the meeting. Today we discuss the project timeline.',
  duration_seconds: 45,
  language: 'en',
  speakers: [
    {
      id: 'spk_1',
      name: 'Host',
      segments: [
        {
          start: 0,
          end: 5.2,
          text: 'Welcome to the meeting.',
          confidence: 0.97,
        },
        {
          start: 5.5,
          end: 12.1,
          text: 'Today we discuss the project timeline.',
          confidence: 0.95,
        },
      ],
    },
  ],
  created_at: '2025-01-15T10:00:00Z',  # 2025 year
};

export const mockSummary = {
  id: 'sum_test_456',
  transcript_id: 'tr_test_123',
  summary: 'Brief meeting to discuss project timeline and milestones.',
  action_items: [
    {
      text: 'Review timeline document',
      assignee: 'John',
      due_date: '2025-01-20',
    },
  ],
  key_points: [
    'Project kickoff confirmed',
    'Timeline review scheduled',
  ],
};
Step 7: Run Development Loop
bash
set -euo pipefail
# Start development
npm run dev

# Watch mode (requires nodemon)
npm install -D nodemon
npx nodemon --exec ts-node src/dev.ts

# Run with debug logging
DEBUG=twinmind:* npm run dev

Output

  • Project structure with TypeScript configuration
  • TwinMind client with type-safe schemas
  • Environment configuration
  • Development scripts
  • Test fixtures for offline development

Error Handling

ErrorCauseSolution
API key missing.env not loadedCheck dotenv import
Connection refusedWrong API URLVerify TWINMIND_API_URL
Rate limitedToo many requestsAdd delay between calls
Schema validation failedAPI response changedUpdate Zod schemas
TimeoutLarge audio fileIncrease timeout value

Project Structure

twinmind-integration/
├── src/
│   ├── twinmind/
│   │   ├── client.ts       # API client
│   │   ├── types.ts        # TypeScript types
│   │   └── errors.ts       # Error classes
│   ├── services/
│   │   └── meeting.ts      # Business logic
│   └── dev.ts              # Development entry
├── tests/
│   ├── fixtures/
│   │   └── mock-responses.ts
│   └── twinmind.test.ts
├── .env                    # Environment (gitignored)
├── .env.example            # Template
├── package.json
└── tsconfig.json

Resources

Next Steps

Apply patterns in twinmind-sdk-patterns for production-ready code.

Examples

Basic usage: Apply twinmind local dev loop to a standard project setup with default configuration options.

Advanced scenario: Customize twinmind local dev loop for production environments with multiple constraints and team-specific requirements.

© jeremylongshore, MIT. 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 plugins/saas-packs/twinmind-pack/skills/twinmind-local-dev-loop of jeremylongshore/tons-of-skills-marketplace.

Open the folder on GitHubat commit 80f86df

Compare with similar skills

Twinmind Local Dev Loop 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.

Twinmind Local Dev Loop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Twinmind Local Dev Loop this skilljeremylongshore/tons-of-skills-marketplace2.8k—~2kAutomated safety check: NotesMIT
Provider Analysisfossasia/eventyay-interpretation1.6k—~1.3kAutomated safety check: PassApache-2.0
Wiremockaehrc/pathling137—~5.7kAutomated safety check: PassApache-2.0
Integration Tests for pRESTprest/prest4.6k—~1.1kAutomated safety check: PassMIT
Short Video Extractordontbesilent2025/dbskill11k—~949Automated safety check: PassCustom licence
Studio Mock API Testssupabase/supabase111k—~3kAutomated safety check: PassApache-2.0

Similar skills

  • Provider Analysis

    fossasia/eventyay-interpretation

    A skill your agent uses when integrating, debugging, or auditing third-party provider integrations (transcription APIs, MediaMTX, Jitsi, future Eventyay API integration).

    1.6k GitHub stars~1.3k tokensUpdated 4 days ago
    Media & CreativeAuto-check passed
  • Wiremock

    aehrc/pathling

    Expert guidance for using WireMock in Java applications for HTTP API mocking and testing.

    137 GitHub stars~5.7k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Guides writing and reviewing pREST Docker-based integration tests so every HTTP request is explained by step comments or table-driven descriptions.

    4.6k GitHub stars~1.1k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Short Video Extractor

    dontbesilent2025/dbskill

    Extracts post data and speech transcripts from Douyin, Xiaohongshu and WeChat Channels share links and saves the transcripts as Markdown by author and title.

    11k GitHub stars~949 tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Studio Mock API Tests

    supabase/supabase

    Official

    Component tests for Supabase Studio that mock API requests at the network layer with MSW.

    111k GitHub stars~3k tokensUpdated today
    Testing & QAAuto-check passed
  • API Testing

    petrkindlmann/qa-skills

    Test REST and GraphQL APIs with Playwright APIRequestContext, Supertest, or standalone HTTP clients.

    168 GitHub stars~2.7k tokensUpdated 4 mo ago
    Testing & QAAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Twinmind Local Dev Loop

What does Twinmind Local Dev Loop do?

Set up local development workflow with TwinMind API integration. Twinmind Local Dev Loop is an agent skill from jeremylongshore/tons-of-skills-marketplace. Set up local development workflow with TwinMind API integration.

When should I use Twinmind Local Dev Loop?

Twinmind Local Dev Loop fits situations like: building applications that integrate TwinMind transcription; testing API calls locally; developing meeting automation tools; with phrases like twinmind dev setup.

How do I install Twinmind Local Dev Loop in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill twinmind-local-dev-loop -a claude-code`. Or copy the skill folder (plugins/saas-packs/twinmind-pack/skills/twinmind-local-dev-loop in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/twinmind-local-dev-loop in your project. Claude Code loads it when a task matches its description.

How do I install Twinmind Local Dev Loop in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill twinmind-local-dev-loop -a codex`. Or copy the skill folder (plugins/saas-packs/twinmind-pack/skills/twinmind-local-dev-loop in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/twinmind-local-dev-loop in your project. Codex loads it when a task matches its description.

Can I use Twinmind Local Dev Loop 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 jeremylongshore/tons-of-skills-marketplace --skill twinmind-local-dev-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/twinmind-local-dev-loop, .gemini/skills/twinmind-local-dev-loop, .github/skills/twinmind-local-dev-loop and .opencode/skills/twinmind-local-dev-loop in your project.

What does Twinmind Local Dev Loop need to run?

Going by SKILL.md and its folder, Twinmind Local Dev Loop needs the command-line tools its instructions call (npm and npx) and credentials named TWINMIND_API_KEY and TWINMIND_WEBHOOK_SECRET. Our summary lists: Python 3; Node.js; A credential in TWINMIND_API_KEY; A credential in TWINMIND_WEBHOOK_SECRET. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(npm:*), Bash(pip:*), Bash(curl:*). Compatibility (from SKILL.md): Designed for Claude Code.

Does Twinmind Local Dev Loop access the network?

SKILL.md names 2 domains. In commands or code: api.twinmind.com; the agent is likely to contact it when it follows the instructions. As links in the text: zod.dev. This is read from the text; nothing was executed.

Is Twinmind Local Dev Loop 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 Twinmind Local Dev Loop use?

Twinmind Local Dev Loop is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Twinmind Local Dev Loop use?

About 2k tokens (SKILL.md is roughly 8.2k 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 Twinmind Local Dev Loop?

Skills that share tags, products or a category with Twinmind Local Dev Loop: Provider Analysis (fossasia/eventyay-interpretation, 1.6k stars), Wiremock (aehrc/pathling, 137 stars), Integration Tests for pREST (prest/prest, 4.6k stars) and Short Video Extractor (dontbesilent2025/dbskill, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Twinmind Local Dev Loop?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,825 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 9, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.