diff --git a/skills/inference-sh/DESCRIPTION.md b/skills/inference-sh/DESCRIPTION.md new file mode 100644 index 000000000..011ede4c1 --- /dev/null +++ b/skills/inference-sh/DESCRIPTION.md @@ -0,0 +1,19 @@ +# inference.sh + +Run 150+ AI applications in the cloud via the [inference.sh](https://inference.sh) platform. + +**One API key for everything** — access image generation, video creation, LLMs, search, 3D, and more through a single account. No need to manage separate API keys for each provider. + +## Available Skills + +- **cli**: Use the inference.sh CLI (`infsh`) via the terminal tool + +## What's Included + +- **Image Generation**: FLUX, Reve, Seedream, Grok Imagine, Gemini +- **Video Generation**: Veo, Wan, Seedance, OmniHuman, HunyuanVideo +- **LLMs**: Claude, Gemini, Kimi, GLM-4 (via OpenRouter) +- **Search**: Tavily, Exa +- **3D**: Rodin +- **Social**: Twitter/X automation +- **Audio**: TTS, voice cloning diff --git a/skills/inference-sh/cli/SKILL.md b/skills/inference-sh/cli/SKILL.md new file mode 100644 index 000000000..79183f61c --- /dev/null +++ b/skills/inference-sh/cli/SKILL.md @@ -0,0 +1,155 @@ +--- +name: inference-sh-cli +description: "Run 150+ AI apps via inference.sh CLI (infsh) — image generation, video creation, LLMs, search, 3D, social automation. Uses the terminal tool. Triggers: inference.sh, infsh, ai apps, flux, veo, image generation, video generation, seedream, seedance, tavily" +version: 1.0.0 +author: okaris +license: MIT +metadata: + hermes: + tags: [AI, image-generation, video, LLM, search, inference, FLUX, Veo, Claude] + related_skills: [] +--- + +# inference.sh CLI + +Run 150+ AI apps in the cloud with a simple CLI. No GPU required. + +All commands use the **terminal tool** to run `infsh` commands. + +## When to Use + +- User asks to generate images (FLUX, Reve, Seedream, Grok, Gemini image) +- User asks to generate video (Veo, Wan, Seedance, OmniHuman) +- User asks about inference.sh or infsh +- User wants to run AI apps without managing individual provider APIs +- User asks for AI-powered search (Tavily, Exa) +- User needs avatar/lipsync generation + +## Prerequisites + +The `infsh` CLI must be installed and authenticated. Check with: + +```bash +infsh me +``` + +If not installed: + +```bash +curl -fsSL https://cli.inference.sh | sh +infsh login +``` + +See `references/authentication.md` for full setup details. + +## Workflow + +### 1. Always Search First + +Never guess app names — always search to find the correct app ID: + +```bash +infsh app list --search flux +infsh app list --search video +infsh app list --search image +``` + +### 2. Run an App + +Use the exact app ID from the search results. Always use `--json` for machine-readable output: + +```bash +infsh app run --input '{"prompt": "your prompt here"}' --json +``` + +### 3. Parse the Output + +The JSON output contains URLs to generated media. Present these to the user with `MEDIA:` for inline display. + +## Common Commands + +### Image Generation + +```bash +# Search for image apps +infsh app list --search image + +# FLUX Dev with LoRA +infsh app run falai/flux-dev-lora --input '{"prompt": "sunset over mountains", "num_images": 1}' --json + +# Gemini image generation +infsh app run google/gemini-2-5-flash-image --input '{"prompt": "futuristic city", "num_images": 1}' --json + +# Seedream (ByteDance) +infsh app run bytedance/seedream-5-lite --input '{"prompt": "nature scene"}' --json + +# Grok Imagine (xAI) +infsh app run xai/grok-imagine-image --input '{"prompt": "abstract art"}' --json +``` + +### Video Generation + +```bash +# Search for video apps +infsh app list --search video + +# Veo 3.1 (Google) +infsh app run google/veo-3-1-fast --input '{"prompt": "drone shot of coastline"}' --json + +# Seedance (ByteDance) +infsh app run bytedance/seedance-1-5-pro --input '{"prompt": "dancing figure", "resolution": "1080p"}' --json + +# Wan 2.5 +infsh app run falai/wan-2-5 --input '{"prompt": "person walking through city"}' --json +``` + +### Local File Uploads + +The CLI automatically uploads local files when you provide a path: + +```bash +# Upscale a local image +infsh app run falai/topaz-image-upscaler --input '{"image": "/path/to/photo.jpg", "upscale_factor": 2}' --json + +# Image-to-video from local file +infsh app run falai/wan-2-5-i2v --input '{"image": "/path/to/image.png", "prompt": "make it move"}' --json + +# Avatar with audio +infsh app run bytedance/omnihuman-1-5 --input '{"audio": "/path/to/audio.mp3", "image": "/path/to/face.jpg"}' --json +``` + +### Search & Research + +```bash +infsh app list --search search +infsh app run tavily/tavily-search --input '{"query": "latest AI news"}' --json +infsh app run exa/exa-search --input '{"query": "machine learning papers"}' --json +``` + +### Other Categories + +```bash +# 3D generation +infsh app list --search 3d + +# Audio / TTS +infsh app list --search tts + +# Twitter/X automation +infsh app list --search twitter +``` + +## Pitfalls + +1. **Never guess app IDs** — always run `infsh app list --search ` first. App IDs change and new apps are added frequently. +2. **Always use `--json`** — raw output is hard to parse. The `--json` flag gives structured output with URLs. +3. **Check authentication** — if commands fail with auth errors, run `infsh login` or verify `INFSH_API_KEY` is set. +4. **Long-running apps** — video generation can take 30-120 seconds. The terminal tool timeout should be sufficient, but warn the user it may take a moment. +5. **Input format** — the `--input` flag takes a JSON string. Make sure to properly escape quotes. + +## Reference Docs + +- `references/authentication.md` — Setup, login, API keys +- `references/app-discovery.md` — Searching and browsing the app catalog +- `references/running-apps.md` — Running apps, input formats, output handling +- `references/cli-reference.md` — Complete CLI command reference diff --git a/skills/inference-sh/cli/references/app-discovery.md b/skills/inference-sh/cli/references/app-discovery.md new file mode 100644 index 000000000..adcac8c5d --- /dev/null +++ b/skills/inference-sh/cli/references/app-discovery.md @@ -0,0 +1,112 @@ +# Discovering Apps + +## List All Apps + +```bash +infsh app list +``` + +## Pagination + +```bash +infsh app list --page 2 +``` + +## Filter by Category + +```bash +infsh app list --category image +infsh app list --category video +infsh app list --category audio +infsh app list --category text +infsh app list --category other +``` + +## Search + +```bash +infsh app search "flux" +infsh app search "video generation" +infsh app search "tts" -l +infsh app search "image" --category image +``` + +Or use the flag form: + +```bash +infsh app list --search "flux" +infsh app list --search "video generation" +infsh app list --search "tts" +``` + +## Featured Apps + +```bash +infsh app list --featured +``` + +## Newest First + +```bash +infsh app list --new +``` + +## Detailed View + +```bash +infsh app list -l +``` + +Shows table with app name, category, description, and featured status. + +## Save to File + +```bash +infsh app list --save apps.json +``` + +## Your Apps + +List apps you've deployed: + +```bash +infsh app my +infsh app my -l # detailed +``` + +## Get App Details + +```bash +infsh app get falai/flux-dev-lora +infsh app get falai/flux-dev-lora --json +``` + +Shows full app info including input/output schema. + +## Popular Apps by Category + +### Image Generation +- `falai/flux-dev-lora` - FLUX.2 Dev (high quality) +- `falai/flux-2-klein-lora` - FLUX.2 Klein (fastest) +- `infsh/sdxl` - Stable Diffusion XL +- `google/gemini-3-pro-image-preview` - Gemini 3 Pro +- `xai/grok-imagine-image` - Grok image generation + +### Video Generation +- `google/veo-3-1-fast` - Veo 3.1 Fast +- `google/veo-3` - Veo 3 +- `bytedance/seedance-1-5-pro` - Seedance 1.5 Pro +- `infsh/ltx-video-2` - LTX Video 2 (with audio) +- `bytedance/omnihuman-1-5` - OmniHuman avatar + +### Audio +- `infsh/dia-tts` - Conversational TTS +- `infsh/kokoro-tts` - Kokoro TTS +- `infsh/fast-whisper-large-v3` - Fast transcription +- `infsh/diffrythm` - Music generation + +## Documentation + +- [Browsing the Grid](https://inference.sh/docs/apps/browsing-grid) - Visual app browsing +- [Apps Overview](https://inference.sh/docs/apps/overview) - Understanding apps +- [Running Apps](https://inference.sh/docs/apps/running) - How to run apps diff --git a/skills/inference-sh/cli/references/authentication.md b/skills/inference-sh/cli/references/authentication.md new file mode 100644 index 000000000..3b6519d3d --- /dev/null +++ b/skills/inference-sh/cli/references/authentication.md @@ -0,0 +1,59 @@ +# Authentication & Setup + +## Install the CLI + +```bash +curl -fsSL https://cli.inference.sh | sh +``` + +## Login + +```bash +infsh login +``` + +This opens a browser for authentication. After login, credentials are stored locally. + +## Check Authentication + +```bash +infsh me +``` + +Shows your user info if authenticated. + +## Environment Variable + +For CI/CD or scripts, set your API key: + +```bash +export INFSH_API_KEY=your-api-key +``` + +The environment variable overrides the config file. + +## Update CLI + +```bash +infsh update +``` + +Or reinstall: + +```bash +curl -fsSL https://cli.inference.sh | sh +``` + +## Troubleshooting + +| Error | Solution | +|-------|----------| +| "not authenticated" | Run `infsh login` | +| "command not found" | Reinstall CLI or add to PATH | +| "API key invalid" | Check `INFSH_API_KEY` or re-login | + +## Documentation + +- [CLI Setup](https://inference.sh/docs/extend/cli-setup) - Complete CLI installation guide +- [API Authentication](https://inference.sh/docs/api/authentication) - API key management +- [Secrets](https://inference.sh/docs/secrets/overview) - Managing credentials diff --git a/skills/inference-sh/cli/references/cli-reference.md b/skills/inference-sh/cli/references/cli-reference.md new file mode 100644 index 000000000..50825825f --- /dev/null +++ b/skills/inference-sh/cli/references/cli-reference.md @@ -0,0 +1,104 @@ +# CLI Reference + +## Installation + +```bash +curl -fsSL https://cli.inference.sh | sh +``` + +## Global Commands + +| Command | Description | +|---------|-------------| +| `infsh help` | Show help | +| `infsh version` | Show CLI version | +| `infsh update` | Update CLI to latest | +| `infsh login` | Authenticate | +| `infsh me` | Show current user | + +## App Commands + +### Discovery + +| Command | Description | +|---------|-------------| +| `infsh app list` | List available apps | +| `infsh app list --category ` | Filter by category (image, video, audio, text, other) | +| `infsh app search ` | Search apps | +| `infsh app list --search ` | Search apps (flag form) | +| `infsh app list --featured` | Show featured apps | +| `infsh app list --new` | Sort by newest | +| `infsh app list --page ` | Pagination | +| `infsh app list -l` | Detailed table view | +| `infsh app list --save ` | Save to JSON file | +| `infsh app my` | List your deployed apps | +| `infsh app get ` | Get app details | +| `infsh app get --json` | Get app details as JSON | + +### Execution + +| Command | Description | +|---------|-------------| +| `infsh app run --input ` | Run app with input file | +| `infsh app run --input ''` | Run with inline JSON | +| `infsh app run --input --no-wait` | Run without waiting for completion | +| `infsh app sample ` | Show sample input | +| `infsh app sample --save ` | Save sample to file | + +## Task Commands + +| Command | Description | +|---------|-------------| +| `infsh task get ` | Get task status and result | +| `infsh task get --json` | Get task as JSON | +| `infsh task get --save ` | Save task result to file | + +### Development + +| Command | Description | +|---------|-------------| +| `infsh app init` | Create new app (interactive) | +| `infsh app init ` | Create new app with name | +| `infsh app test --input ` | Test app locally | +| `infsh app deploy` | Deploy app | +| `infsh app deploy --dry-run` | Validate without deploying | +| `infsh app pull ` | Pull app source | +| `infsh app pull --all` | Pull all your apps | + +## Environment Variables + +| Variable | Description | +|----------|-------------| +| `INFSH_API_KEY` | API key (overrides config) | + +## Shell Completions + +```bash +# Bash +infsh completion bash > /etc/bash_completion.d/infsh + +# Zsh +infsh completion zsh > "${fpath[1]}/_infsh" + +# Fish +infsh completion fish > ~/.config/fish/completions/infsh.fish +``` + +## App Name Format + +Apps use the format `namespace/app-name`: + +- `falai/flux-dev-lora` - fal.ai's FLUX 2 Dev +- `google/veo-3` - Google's Veo 3 +- `infsh/sdxl` - inference.sh's SDXL +- `bytedance/seedance-1-5-pro` - ByteDance's Seedance +- `xai/grok-imagine-image` - xAI's Grok + +Version pinning: `namespace/app-name@version` + +## Documentation + +- [CLI Setup](https://inference.sh/docs/extend/cli-setup) - Complete CLI installation guide +- [Running Apps](https://inference.sh/docs/apps/running) - How to run apps via CLI +- [Creating an App](https://inference.sh/docs/extend/creating-app) - Build your own apps +- [Deploying](https://inference.sh/docs/extend/deploying) - Deploy apps to the cloud diff --git a/skills/inference-sh/cli/references/running-apps.md b/skills/inference-sh/cli/references/running-apps.md new file mode 100644 index 000000000..e930d5cfb --- /dev/null +++ b/skills/inference-sh/cli/references/running-apps.md @@ -0,0 +1,171 @@ +# Running Apps + +## Basic Run + +```bash +infsh app run user/app-name --input input.json +``` + +## Inline JSON + +```bash +infsh app run falai/flux-dev-lora --input '{"prompt": "a sunset over mountains"}' +``` + +## Version Pinning + +```bash +infsh app run user/app-name@1.0.0 --input input.json +``` + +## Local File Uploads + +The CLI automatically uploads local files when you provide a file path instead of a URL. Any field that accepts a URL also accepts a local path: + +```bash +# Upscale a local image +infsh app run falai/topaz-image-upscaler --input '{"image": "/path/to/photo.jpg", "upscale_factor": 2}' + +# Image-to-video from local file +infsh app run falai/wan-2-5-i2v --input '{"image": "./my-image.png", "prompt": "make it move"}' + +# Avatar with local audio and image +infsh app run bytedance/omnihuman-1-5 --input '{"audio": "/path/to/speech.mp3", "image": "/path/to/face.jpg"}' + +# Post tweet with local media +infsh app run x/post-create --input '{"text": "Check this out!", "media": "./screenshot.png"}' +``` + +Supported paths: +- Absolute paths: `/home/user/images/photo.jpg` +- Relative paths: `./image.png`, `../data/video.mp4` +- Home directory: `~/Pictures/photo.jpg` + +## Generate Sample Input + +Before running, generate a sample input file: + +```bash +infsh app sample falai/flux-dev-lora +``` + +Save to file: + +```bash +infsh app sample falai/flux-dev-lora --save input.json +``` + +Then edit `input.json` and run: + +```bash +infsh app run falai/flux-dev-lora --input input.json +``` + +## Workflow Example + +### Image Generation with FLUX + +```bash +# 1. Get app details +infsh app get falai/flux-dev-lora + +# 2. Generate sample input +infsh app sample falai/flux-dev-lora --save input.json + +# 3. Edit input.json +# { +# "prompt": "a cat astronaut floating in space", +# "num_images": 1, +# "image_size": "landscape_16_9" +# } + +# 4. Run +infsh app run falai/flux-dev-lora --input input.json +``` + +### Video Generation with Veo + +```bash +# 1. Generate sample +infsh app sample google/veo-3-1-fast --save input.json + +# 2. Edit prompt +# { +# "prompt": "A drone shot flying over a forest at sunset" +# } + +# 3. Run +infsh app run google/veo-3-1-fast --input input.json +``` + +### Text-to-Speech + +```bash +# Quick inline run +infsh app run falai/kokoro-tts --input '{"text": "Hello, this is a test."}' +``` + +## Task Tracking + +When you run an app, the CLI shows the task ID: + +``` +Running falai/flux-dev-lora +Task ID: abc123def456 +``` + +For long-running tasks, you can check status anytime: + +```bash +# Check task status +infsh task get abc123def456 + +# Get result as JSON +infsh task get abc123def456 --json + +# Save result to file +infsh task get abc123def456 --save result.json +``` + +### Run Without Waiting + +For very long tasks, run in background: + +```bash +# Submit and return immediately +infsh app run google/veo-3 --input input.json --no-wait + +# Check later +infsh task get +``` + +## Output + +The CLI returns the app output directly. For file outputs (images, videos, audio), you'll receive URLs to download. + +Example output: + +```json +{ + "images": [ + { + "url": "https://cloud.inference.sh/...", + "content_type": "image/png" + } + ] +} +``` + +## Error Handling + +| Error | Cause | Solution | +|-------|-------|----------| +| "invalid input" | Schema mismatch | Check `infsh app get` for required fields | +| "app not found" | Wrong app name | Check `infsh app list --search` | +| "quota exceeded" | Out of credits | Check account balance | + +## Documentation + +- [Running Apps](https://inference.sh/docs/apps/running) - Complete running apps guide +- [Streaming Results](https://inference.sh/docs/api/sdk/streaming) - Real-time progress updates +- [Setup Parameters](https://inference.sh/docs/apps/setup-parameters) - Configuring app inputs