@unityclaw/sdk
v1.2.1
Published
Node.js SDK for UnityClaw API - AI-powered image/video generation, media analysis, and more
Maintainers
Readme
@unityclaw/sdk
Node.js SDK for UnityClaw API - AI-powered image/video generation, media analysis, document processing, and more.
Installation
npm install @unityclaw/sdkQuick Start
import { UnityClawClient } from '@unityclaw/sdk';
// Reads UNITYCLAW_API_KEY from environment variable
const client = new UnityClawClient();
// Or with explicit config
const client = new UnityClawClient({
apiKey: 'your-api-key',
baseUrl: 'https://unityclaw.com',
taskDir: './tasks',
timeout: 900000 // 15 minutes
});
// Generate image
const imageResult = await client.image.jimeng({
prompt: 'A beautiful sunset over mountains',
size: '2048x2048'
});
// Generate video (Kling)
const videoResult = await client.video.kling({
prompt: 'A cat playing piano',
model: 'kling-v2-6',
aspect_ratio: '16:9',
duration: '5'
});
// Translate document (local file will be auto-uploaded to get tmp_url)
const docResult = await client.document.translate({
attachment: [{ path: './files/doc.pdf' }],
source_language: { value: 'en', label: 'English' },
target_language: { value: 'zh', label: 'Chinese' }
});
// Analyze media
const mediaResult = await client.media.analyze({
url: [{ link: 'https://youtube.com/watch?v=...' }]
});Configuration
Environment Variables
UNITYCLAW_API_KEY- Your UnityClaw API keyUNITYCLAW_BASE_URL- API base URL (optional, defaults to https://unityclaw.com)
CLI Configuration
Use the CLI to persist configuration:
# Install globally
npm install -g @unityclaw/sdk
# Set API key (stored in ~/.unityclaw/config.json)
unityclaw-sdk config set apiKey your-api-key
# Set custom base URL
unityclaw-sdk config set baseUrl https://custom.example.com
# View current configuration
unityclaw-sdk config
# Get a specific value
unityclaw-sdk config get apiKeyConfiguration Priority
- Constructor parameters (highest priority)
- Environment variables
- Config file (~/.unityclaw/config.json)
- Default values (lowest priority)
Task Folders
Each SDK execution creates a task folder with:
logs/request.json- Request detailslogs/response.json- API responselogs/execution.log- Execution logattachments/- Downloaded attachments (to avoid link expiration)
Default Task Directory
Tasks are stored in ~/Documents/tasks/ by default. You can override this:
const client = new UnityClawClient({
taskDir: '/path/to/custom/tasks'
});API Reference
Image Generation
// JiMeng
await client.image.jimeng({
prompt: 'A sunset over mountains',
size: '2048x2048'
});
// JiMeng (Doubao)
await client.image.jimeng({
prompt: 'A futuristic city',
model: 'v6.0'
});Video Generation
// Kling
await client.video.kling({
prompt: 'A dancing robot',
model: 'kling-v1-5'
});Document Processing
// Translate document
await client.document.translate({
attachment: [{ tmp_url: 'https://...', name: 'doc.pdf' }],
source_language: { value: 'en', label: 'English' },
target_language: { value: 'zh', label: 'Chinese' }
});
// Convert document
await client.document.convert({
attachment: [{ path: './files/doc.pdf' }],
input_format: 'pdf',
output_format: 'docx'
});Media Analysis
const result = await client.media.analyze({
url: [{ link: 'https://youtube.com/watch?v=...' }]
});
console.log(result.response.data?.summary);
console.log(result.response.data?.subtitle);License
MIT
