# JigsawStack on boxd

> JigsawStack provides a suite of custom small AI models integrated into scalable infrastructure, enabling developers to build AI-powered applications efficiently.

- Page: https://boxd.sh/integrations/jigsawstack/
- CLI: `run jigsawstack` (23 commands, 21 marked common)
- SDK: `import { jigsawstack } from "@boxd/run"`; every parameter and response type is at `@boxd/run/jigsawstack`
- Triggers: none
- Connect: `run auth jigsawstack` (API key), or https://app.boxd.sh/integrations/detail/jigsawstack
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth jigsawstack      # once: prints a link to connect your account
run jigsawstack           # list its commands
run jigsawstack check-nsfw --help
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, jigsawstack } from "@boxd/run";

every("1 hour", async () => {
  const result = await jigsawstack.checkNsfw({});
  console.log(result);
});
```

Run it with `run jigsawstack.run.ts`. JigsawStack has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run jigsawstack <command> --help` lists the optional ones. "common" marks what `run jigsawstack` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `check-nsfw` ·common | `jigsawstack.checkNsfw()` | — | 2 | Detect NSFW content in images |
| `check-profanity` ·common | `jigsawstack.checkProfanity()` | `--text` | 1 | Check text for profanity and inappropriate language |
| `check-spam` ·common | `jigsawstack.checkSpam()` | `--text` | 0 | Perform spam check analysis on text |
| `check-spelling` ·common | `jigsawstack.checkSpelling()` | `--text` | 1 | Check and correct spelling errors in text |
| `classify-content` ·common | `jigsawstack.classifyContent()` | `--dataset` `--labels` | 1 | Classify text and image datasets using custom labels |
| `convert-html-to-any` ·common | `jigsawstack.convertHtmlToAny()` | — | 8 | Convert HTML to images (PNG/JPEG/WEBP) or PDF, or capture website screenshots |
| `create-embedding-v2` ·common | `jigsawstack.createEmbeddingV2()` | `--type` | 8 | Generate enhanced vector embeddings with speaker fingerprint support using the v2 model |
| `create-prediction` ·common | `jigsawstack.createPrediction()` | `--dataset` | 1 | Forecast time series data using AI-powered prediction |
| `create-prompt` ·common | `jigsawstack.createPrompt()` | `--prompt` | 3 | Create a new prompt in the Prompt Engine for reusable LLM interactions |
| `create-voice-clone` ·common | `jigsawstack.createVoiceClone()` | `--name` | 2 | Create a cloned voice for text-to-speech synthesis |
| `detect-objects` ·common | `jigsawstack.detectObjects()` | — | 2 | Recognize and identify objects within an image using computer vision AI |
| `extract-vocr` ·common | `jigsawstack.extractVocr()` | — | 5 | Recognize, describe and retrieve data within images with great accuracy using Vision OCR |
| `get-search-suggestions` | `jigsawstack.getSearchSuggestions()` | `--query` | 0 | Get real-time search suggestions for a given query |
| `get-sentiment` ·common | `jigsawstack.getSentiment()` | `--text` | 0 | Retrieve sentiment analysis via GET request |
| `image-generation` ·common | `jigsawstack.imageGeneration()` | `--prompt` | 9 | Generate images from text prompts |
| `list-prompts` | `jigsawstack.listPrompts()` | — | 2 | List all prompts stored in the Prompt Engine |
| `run-prompt-by-id` ·common | `jigsawstack.runPromptById()` | `--id` | 2 | Execute a stored prompt using its prompt engine ID |
| `scrape-website` ·common | `jigsawstack.scrapeWebsite()` | — | 21 | Scrape any website and extract structured data using AI-powered element prompts or CSS selectors |
| `sentiment-analysis` ·common | `jigsawstack.sentimentAnalysis()` | `--text` | 0 | Analyze text sentiment |
| `summarize-text` ·common | `jigsawstack.summarizeText()` | — | 3 | Generate concise, intelligent summaries of text or documents with AI |
| `text-to-speech` ·common | `jigsawstack.textToSpeech()` | `--text` | 3 | Convert text to natural-sounding speech |
| `translate-text` ·common | `jigsawstack.translateText()` | `--target-language` `--text` | 1 | Translate text from one language to another |
| `web-search` ·common | `jigsawstack.webSearch()` | `--query` | 7 | Perform AI-powered web search with AI overview and geo-aware results |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
