home / skills / jeremylongshore / claude-code-plugins-plus-skills / vastai-local-dev-loop

This skill helps you configure a fast Vast.ai local development loop with hot reload and tests for rapid iteration.

npx playbooks add skill jeremylongshore/claude-code-plugins-plus-skills --skill vastai-local-dev-loop

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
2.9 KB
---
name: vastai-local-dev-loop
description: |
  Configure Vast.ai local development with hot reload and testing.
  Use when setting up a development environment, configuring test workflows,
  or establishing a fast iteration cycle with Vast.ai.
  Trigger with phrases like "vastai dev setup", "vastai local development",
  "vastai dev environment", "develop with vastai".
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(pnpm:*), Grep
version: 1.0.0
license: MIT
author: Jeremy Longshore <[email protected]>
---

# Vast.ai Local Dev Loop

## Overview
Set up a fast, reproducible local development workflow for Vast.ai.

## Prerequisites
- Completed `vastai-install-auth` setup
- Node.js 18+ with npm/pnpm
- Code editor with TypeScript support
- Git for version control

## Instructions

### Step 1: Create Project Structure
```
my-vastai-project/
├── src/
│   ├── vastai/
│   │   ├── client.ts       # Vast.ai client wrapper
│   │   ├── config.ts       # Configuration management
│   │   └── utils.ts        # Helper functions
│   └── index.ts
├── tests/
│   └── vastai.test.ts
├── .env.local              # Local secrets (git-ignored)
├── .env.example            # Template for team
└── package.json
```

### Step 2: Configure Environment
```bash
# Copy environment template
cp .env.example .env.local

# Install dependencies
npm install

# Start development server
npm run dev
```

### Step 3: Setup Hot Reload
```json
{
  "scripts": {
    "dev": "tsx watch src/index.ts",
    "test": "vitest",
    "test:watch": "vitest --watch"
  }
}
```

### Step 4: Configure Testing
```typescript
import { describe, it, expect, vi } from 'vitest';
import { Vast.aiClient } from '../src/vastai/client';

describe('Vast.ai Client', () => {
  it('should initialize with API key', () => {
    const client = new Vast.aiClient({ apiKey: 'test-key' });
    expect(client).toBeDefined();
  });
});
```

## Output
- Working development environment with hot reload
- Configured test suite with mocking
- Environment variable management
- Fast iteration cycle for Vast.ai development

## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| Module not found | Missing dependency | Run `npm install` |
| Port in use | Another process | Kill process or change port |
| Env not loaded | Missing .env.local | Copy from .env.example |
| Test timeout | Slow network | Increase test timeout |

## Examples

### Mock Vast.ai Responses
```typescript
vi.mock('@vastai/sdk', () => ({
  Vast.aiClient: vi.fn().mockImplementation(() => ({
    // Mock methods here
  })),
}));
```

### Debug Mode
```bash
# Enable verbose logging
DEBUG=VASTAI=* npm run dev
```

## Resources
- [Vast.ai SDK Reference](https://docs.vastai.com/sdk)
- [Vitest Documentation](https://vitest.dev/)
- [tsx Documentation](https://github.com/esbuild-kit/tsx)

## Next Steps
See `vastai-sdk-patterns` for production-ready code patterns.

Overview

This skill configures a fast, local development loop for building and testing Vast.ai integrations. It provides a reproducible project layout, hot-reload scripts, and a test setup tuned for mocking the Vast.ai SDK. Use it to iterate quickly on client code, local tooling, and automated tests.

How this skill works

The skill scaffolds a minimal project structure with a Vast.ai client wrapper, environment templates, and test files. It installs dependencies, wires tsx-based hot reload for live coding, and configures Vitest for unit tests and mocks of the Vast.ai SDK. Error cases and debug tips are included to help resolve common setup issues.

When to use it

  • Starting a new Vast.ai integration or plugin development
  • Setting up a repeatable local dev environment for a team
  • Adding hot-reload for rapid iteration on TypeScript code
  • Configuring unit tests and mocking for Vast.ai API calls
  • Establishing local environment variable management and debugging

Best practices

  • Keep secrets out of source by using .env.local and .env.example templates
  • Wrap all API interactions in a client module to simplify mocking and testing
  • Use tsx watch for small edit-refresh cycles during development
  • Mock @vastai/sdk in tests to avoid network calls and make tests deterministic
  • Add CI steps that run vitest and linting to enforce quality before merge

Example use cases

  • Develop a Vast.ai client wrapper and iterate with live reload on index.ts
  • Write unit tests that mock Vast.ai responses to validate retry and error handling
  • Set up a local dev server demonstrating marketplace queries against stubbed data
  • Share .env.example with teammates so everyone can reproduce the same local config
  • Enable DEBUG=VASTAI=* to trace client behavior during development and troubleshooting

FAQ

What prerequisites are required?

Node.js 18+, a TypeScript-capable editor, Git, and the prior vastai-install-auth setup for credentials.

How do I enable hot reload?

Add the dev script using tsx watch ("dev": "tsx watch src/index.ts") and run npm run dev to get live reload on changes.