InsightWorker Logo

Download InsightWorker

The community trial has ended

The community trial has ended

The free community version of InsightWorker is no longer available for download. For a license or the enterprise tier, contact our team.

For organizations · 10+ seats

Need centralized control across your team?

InsightWorker Enterprise adds SSO, per-team model whitelists, token quotas, a private skills marketplace, and audit logging on top of the same product. Self-hosted or SaaS.

Configure your LLM provider

InsightWorker is provider-agnostic. Set one of the following in ~/.insightworker/.env (CLI) or in Settings → LLM Provider (Desktop).

AWS Bedrock
Anthropic API
OpenAI
Azure OpenAI
Custom / GPU
Google Gemini
Vertex AI

AWS Bedrock — recommended for enterprise

Uses your existing AWS credentials (~/.aws/credentials or IAM role). No model API key to manage.

1
Enable model access in the AWS Console. Open Bedrock → Model access in your region and request access for the Anthropic Claude family.
2
Verify with the AWS CLI that the model you want is ACTIVE:
aws bedrock list-foundation-models --region us-east-1 \
  --by-provider anthropic \
  --query 'modelSummaries[?modelLifecycle.status==`ACTIVE`].modelId'
3
Configure InsightWorker. Edit ~/.insightworker/.env:
LLM_PROVIDER=bedrock
AWS_REGION=us-east-1
BEDROCK_MODEL=us.anthropic.claude-sonnet-4-5-20250929-v1:0

# Optional — falls back to ~/.aws/credentials or IAM role
# AWS_ACCESS_KEY_ID=...
# AWS_SECRET_ACCESS_KEY=...
If you see "This Model is marked by provider as Legacy", replace BEDROCK_MODEL with an ACTIVE ID from step 2.

Anthropic API — direct

Use this if you don't have AWS Bedrock and want to call Claude directly via Anthropic's API.

1
Get an API key from console.anthropic.com (starts with sk-ant-).
2
Edit ~/.insightworker/.env:
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...
AGENT_MODEL=claude-sonnet-4-5
Use caseRecommended model
General appsclaude-sonnet-4-5
Stored-proc translation, complex reasoningclaude-sonnet-4-5
Bulk classification, cheap callsclaude-haiku-4-5

OpenAI

Use a key from platform.openai.com (starts with sk-).

1
Create a project key with access to the model you want.
2
Edit ~/.insightworker/.env:
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o
Use caseRecommended model
General apps, tool usegpt-4o
Cheap classification / draftsgpt-4o-mini
Hard reasoning, planningo1-preview · o1-mini
Tool-call arguments come back as JSON strings. InsightWorker parses them defensively and reports a clean error if a model returns malformed JSON.

Azure OpenAI

For enterprise deployments where prompts must stay in your Azure tenant. Same Chat Completions surface as OpenAI proper, routed through your endpoint and deployment.

1
In the Azure portal, create an OpenAI resource and a model deployment (e.g. my-gpt-4o).
2
Edit ~/.insightworker/.env:
LLM_PROVIDER=azure
AZURE_OPENAI_ENDPOINT=https://my-resource.openai.azure.com
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_DEPLOYMENT=my-gpt-4o
AZURE_OPENAI_API_VERSION=2024-08-01-preview
The deployment name takes the place of the model id. The API version defaults to 2024-08-01-preview — bump it when you upgrade Azure resources.

Custom OpenAI-compatible (vLLM, Ollama, LM Studio, in-house GPU)

Point at any endpoint that exposes the OpenAI Chat Completions API. Useful for self-hosted models, local dev, or your own GPU box.

1
Stand up the endpoint. Examples:
# vLLM
vllm serve meta-llama/Llama-3.1-70B-Instruct --port 8000

# Ollama (already exposes /v1)
ollama serve

# LM Studio — enable "OpenAI-compatible server" in Local Server tab
2
Edit ~/.insightworker/.env:
LLM_PROVIDER=custom
CUSTOM_LLM_BASE_URL=http://gpu-box.internal:8000/v1
CUSTOM_LLM_API_KEY=optional-if-required
CUSTOM_LLM_MODEL=meta-llama/Llama-3.1-70B-Instruct
EndpointTypical base URL
vLLM / TGIhttp://<host>:8000/v1
Ollamahttp://<host>:11434/v1
LM Studiohttp://localhost:1234/v1
Prompts and tool outputs are sent to whatever URL you configure. Only point at endpoints you trust. The base URL is never auto-set — you must opt-in by setting the env var.
The model must support OpenAI-style tool calling for apps to work end-to-end. Most modern instruct-tuned models do (Llama 3.1+, Qwen 2.5+, Mistral Large). Older models may chat fine but fail when asked to use tools.

Google Gemini (AI Studio)

Use a key from aistudio.google.com/apikey. Fastest path — no GCP project required.

1
Create an API key in AI Studio (starts with AIza).
2
Edit ~/.insightworker/.env:
LLM_PROVIDER=gemini
GEMINI_API_KEY=AIza...
GEMINI_MODEL=gemini-2.0-flash-001
Use caseRecommended model
General apps, tool usegemini-2.0-flash-001
Hard reasoning, long contextgemini-2.5-pro
Cheap classificationgemini-2.0-flash-lite
Gemini's function-calling schema is OpenAPI 3.0-ish — stricter than full JSON Schema. InsightWorker sanitizes tool schemas automatically (strips $ref, oneOf, etc.). If a custom tool fails on Gemini but works on OpenAI, simplify its input_schema.

Google Vertex AI

For enterprise deployments where prompts must stay in your GCP project. Same Gemini models, IAM-governed, region-pinned, with VPC-SC support.

1
Enable the Vertex AI API in your project. Grant your principal the roles/aiplatform.user role.
2
Auth via Application Default Credentials (run gcloud auth application-default login) or point at a service-account JSON.
3
Edit ~/.insightworker/.env:
LLM_PROVIDER=vertex
GOOGLE_CLOUD_PROJECT=my-gcp-project
GOOGLE_CLOUD_LOCATION=us-central1
# Optional — falls back to ADC if unset:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
VERTEX_MODEL=gemini-2.0-flash-001
Common locations: us-central1, us-east5, europe-west4, asia-northeast1. Some Gemini models are only available in a subset of regions — check the Vertex AI locations doc.

Live web search

Plug in a Perplexity Sonar key and the agent gets a perplexity_search tool — current news, market data, regulatory filings, all with source citations.

Setup

Get a key at perplexity.ai/settings/api, then add to ~/.insightworker/.env:

PERPLEXITY_API_KEY=pplx-...
PERPLEXITY_MODEL=sonar-pro

The agent decides when to call it. Sample prompts that route through Perplexity:

  • "Any material updates about Apple in the last hour?"
  • "What did the Fed announce at this morning's meeting?"
  • "Find regulatory filings for Snowflake from the past week."

Tool input supports recency (hour / day / week / month / year) and domain_filter (allowlist or -domain to exclude).

Output is auto-truncated to the active LLM's context budget — Gemini gets up to 800k chars, gpt-4o gets ~50k, so multi-turn agent loops don't blow past the model's window.

First run

Get to a working chat in under two minutes.

CLI

Start the REPL

insightworker
> what DAGs are running in Airflow?
> compare row counts MySQL ↔ Oracle for users
> /app create "convert Redshift DAG to Oracle ADW"
Desktop

Open a folder, ask a question

  1. Launch InsightWorker from Applications.
  2. Click + Open Folder… and pick a project folder.
  3. Drag any file from the Files tab onto the chat to attach.
  4. Use Apps → + New for repeatable tasks.

Schedule recurring runs

Drop a YAML file in your workspace, run insightworker --daemon, and the agent fires on a cadence — every minute through every day. Pair with the Perplexity tool to monitor companies, markets, or systems on autopilot.

Schedule file

<workspace>/.insightworker/schedules.yaml:

schedules:
  - name: monitor-apple
    every: 1h
    prompt: |
      Use perplexity_search recency=hour for "Apple Inc news".
      If anything material (product launch, M&A, exec change,
      earnings, big stock move) appeared in the last hour,
      append a dated entry to ~/Desktop/apple-watch.md.
      If nothing material, skip the write.

  - name: nightly-cleanup
    every: 24h
    app: cleanup-stale-dags
    enabled: true

Cadence syntax: 1h, 30m, 1h30m, 45s, @hourly, @daily, @weekly. 30-second floor as a rate-limit guard. Use prompt: for free-form text or app: to point at an existing app under .insightworker/workflows/.

CLI
# Run the scheduler in foreground
insightworker --daemon

# Inspect what's loaded
insightworker schedule list

# Fire one immediately (skips cadence)
insightworker schedule run monitor-apple
Production wrap

For unattended runs, wrap with launchd (macOS), systemd (Linux), or pm2. Each schedule writes to its own log:

~/.insightworker/logs/<schedule>.log

Per-schedule mutex skips overlapping runs (won't stack a second tick on top of an in-flight one). SIGINT / SIGTERM wait for in-flight runs to finish before exit.

Trial license

This build runs free through 31 August 2026. After that, the CLI and Desktop app refuse to start until a license key is configured. To purchase, extend, or move to enterprise tier:

Contact our team

contact@verticalserve.com