Yes. Workspace management, file browsing, uploading, editing, and GitHub cloning features work without any API key. Only AI chat and note generation features require an API key. The UI will display a prompt indicating that AI features are unavailable.
Set OPENAI_BASE_URL, ANTHROPIC_BASE_URL, or GEMINI_BASE_URL in your .env.local file to point to any API-compatible endpoint:
OPENAI_BASE_URL=https://api.your-proxy.com/v1
OPENAI_API_KEY=sk-your-keyIf your proxy doesn't support the embedding endpoint, configure a separate embedding service:
EMBEDDING_API_KEY=sk-your-embedding-key
EMBEDDING_BASE_URL=https://api.your-embedding-proxy.com/v1
EMBEDDING_MODEL=text-embedding-3-smallSet GEMINI_API_KEY in your .env.local file. Optionally set GEMINI_BASE_URL if using a custom proxy:
GEMINI_API_KEY=your-gemini-key
# GEMINI_BASE_URL=https://api.your-provider.comThen select "Gemini" as the provider in the Settings UI, or set the default:
LLM_PROVIDER=gemini
LLM_MODEL=gemini-2.5-flashRAG Chat answers questions grounded in your workspace files using retrieval-augmented generation. It searches indexed files for relevant context and generates answers with source citations.
Agent mode provides an autonomous AI with tool access (bash, file operations, kubectl, article search, etc.). It can execute multi-step tasks, run commands, edit files, search papers, and submit K8s jobs. Agent mode supports three sub-modes:
- Agent — Full tool access for autonomous execution
- Plan — Read-only tools for analysis and planning
- Ask — Read-only tools for simple Q&A
| Category | Extensions |
|---|---|
| Documents | .pdf, .txt, .md, .html |
| Data | .json, .csv |
| Code | .js, .ts, .py, .java, .go, .rs, .cpp, .c, .rb, .php, and more |
The first sync processes all files (extract text → chunk → generate embeddings), which depends on the number and size of files. Subsequent syncs only process new or modified files (based on file hash comparison), making them significantly faster.
Yes. Set WORKSPACE_ROOTS to Linux paths:
WORKSPACE_ROOTS=/home/user/research,/home/user/projectsScheduled tasks use cron expressions to automate recurring operations. The scheduler polls every 60 seconds and runs due tasks. Available task types:
| Type | Description |
|---|---|
daily_report |
Generate daily workspace activity report |
weekly_report |
Generate weekly workspace activity report |
git_sync |
Automatically pull Git repositories |
source_sync |
Re-index workspace files |
custom |
User-defined workflows |
Create tasks via the UI or the POST /api/scheduled-tasks endpoint with a cron expression (e.g., "0 0 * * *" for daily at midnight).
Use the Datasets page or the POST /api/datasets endpoint:
- Navigate to the Datasets page
- Enter the repository ID (e.g.,
username/dataset-name) - Select the source (HuggingFace or ModelScope)
- Optionally set file patterns to include/exclude
- Start the download
For private HuggingFace repos, set HF_TOKEN in .env.local or via the Settings UI.
Set HTTP_PROXY and HTTPS_PROXY in your .env.local file:
HTTP_PROXY=http://your-proxy:3128
HTTPS_PROXY=http://your-proxy:3128
NO_PROXY=localhost,127.0.0.1,10.0.0.0/8All outbound fetch() calls (AI API, GitHub, HuggingFace, etc.) will route through the proxy. Hosts in NO_PROXY bypass it.
SQLite requires a local filesystem for reliable locking. If the project is on NFS/CIFS, set DATABASE_URL to a local path:
DATABASE_URL=/tmp/innoclaw/innoclaw.dbInnoClaw now disables Next's dist-dir lock automatically on lockless network filesystems, so this startup error no longer requires a special NEXT_BUILD_DIR. If you still want a different build directory, keep it inside the repo:
NEXT_BUILD_DIR=.next-local- Configure Kubernetes access in
.env.local:KUBECONFIG_PATH=/path/to/your/kubeconfig K8S_SUBMITTER=your-ad-account K8S_IMAGE_PULL_SECRET=your-secret-name
- Use Agent mode and ask the AI to submit a job, or use the
submitK8sJobtool directly - Jobs require explicit user confirmation before submission (the agent will ask)
- Use
collectJobResultsto retrieve logs and status after completion
See Environment Variables for all K8S_* configuration options.
- Verify that
gitis installed:git --version - Check that
GITHUB_TOKENis set correctly in.env.local - Ensure the token has the
reposcope for private repositories - Check network connectivity to
github.com
# Remove the database file
rm ./data/innoclaw.db
# Re-run migrations
npx drizzle-kit migrateThis creates a fresh database. All workspaces, chat history, notes, and settings will be lost, but workspace files on disk are not affected.
Back up the following:
| Item | Location |
|---|---|
| Database | ./data/innoclaw.db |
| Configuration | .env.local |
| Workspace files | Directories listed in WORKSPACE_ROOTS |
- Ensure Node.js 24+ is installed (Node.js 25 is also supported):
node --version - Ensure dependencies are installed:
npm install - Ensure the database is initialized:
npx drizzle-kit migrate - Ensure
WORKSPACE_ROOTSdirectories exist on disk - Check for port conflicts on port 3000
If npm run build fails with errors about fetching Google Fonts, this is a network issue. Ensure your build environment has internet access, or configure Next.js to use local fonts.
# Development
PORT=8080 npm run dev
# Production
PORT=8080 npm run start- GitHub Issues — Report bugs or request features
- Documentation — You're reading it! Check other sections for specific topics
- Source Code — The code is well-structured and documented; see Project Structure