neuroflow:setup¶
Agent-facing knowledge for all neuroflow integrations. Use this skill when a user asks about credentials, integration status, or setting up an external service โ without necessarily running the full /setup wizard.
Integrations overview¶
| Integration | Credential required | Key |
|---|---|---|
| PubMed / bioRxiv | โ No | โ (handled by biorxiv MCP server) |
| Miro | โ Yes | MIRO_ACCESS_TOKEN |
| Context7 | โ No | โ |
Google Workspace CLI (gws) |
โ Yes | OAuth via gws auth login |
| Custom LLM provider | โ Yes (API key) | custom_llm.api_key in integrations.json |
Global vs project-level credentials¶
neuroflow supports two credential scopes:
| Scope | Location | When to use |
|---|---|---|
| Global (device-wide) | ~/.neuroflow/integrations.json |
Set once โ applies to all projects on this machine |
| Per-project | .neuroflow/integrations.json |
Overrides global for this project only |
Resolution order: per-project credentials take precedence over global. If a key is not found per-project, fall back to global.
Platform paths for global config:
- macOS / Linux: ~/.neuroflow/integrations.json
- Windows: %USERPROFILE%\.neuroflow\integrations.json (e.g. C:\Users\YourName\.neuroflow\integrations.json)
When guiding a user, ask:
"Save credentials for this project only, or globally on this machine (all projects)?"
Default recommendation: global, so they don't repeat setup on every new project.
How to check integration status¶
- Detect platform (
os.platform()or check$OSTYPE/$env:OS). - Read global config at
~/.neuroflow/integrations.json(or%USERPROFILE%\.neuroflow\integrations.jsonon Windows) if it exists. - Read per-project
.neuroflow/integrations.jsonif it exists. Per-project keys override global keys. - Check whether the corresponding environment variables are set in the current shell (
MIRO_ACCESS_TOKEN, etc.). - For
gws: rungws --version 2>/dev/nullorwhich gws(Unix) /where gws(Windows) to detect installation; rungws auth statusto check OAuth. - For custom LLM: check
integrations.jsonfor acustom_llmkey; if present, showproviderandbase_url.
Display a status table:
Integration Status
โโโโโโโโโโโโโโโโโโโโโโ โโโโโโ
PubMed / bioRxiv โ
no credentials needed
Miro โ
configured (or โ not configured)
Context7 โ
no credentials needed
Google Workspace CLI โ
installed (or โ not installed)
โโ OAuth credentials โ
configured (or โ not configured)
Custom LLM โ
configured (provider: einfra) (or โ not configured)
integrations.json schema¶
Full schema including all integrations:
{
"miro": {
"MIRO_ACCESS_TOKEN": "eyJ..."
},
"google_workspace": {
"GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE": "/home/user/.config/gws/client_secret.json",
"GOOGLE_WORKSPACE_CLI_CLIENT_ID": "<optional>",
"GOOGLE_WORKSPACE_CLI_CLIENT_SECRET": "<optional>"
},
"custom_llm": {
"provider": "einfra",
"base_url": "https://llm.ai.e-infra.cz/v1",
"api_key": "<YOUR_API_KEY>",
"model": "qwen3.5-122b",
"proxy_port": 3456
}
}
.neuroflow/integrations.jsonis gitignored โ credentials never leave the local machine.- When merging: only overwrite keys the user just set; leave others unchanged.
api_keyfields are always local-only, even if other non-secret fields are synced to a flowie profile.
Credential validation rules¶
| Integration | Validation |
|---|---|
| Miro | Non-empty, at least 20 characters; eyJ prefix is a good sign (JWT) |
| Google Workspace | File must exist at platform path, or env vars must be set |
| Custom LLM | API key: non-empty; base URL: must start with http; model: optional |
Custom LLM provider support¶
The /setup Step 5 allows configuring any OpenAI-compatible API endpoint as a replacement for Anthropic's API in Claude Code. This is how it works:
- Set
ANTHROPIC_BASE_URLto the custom endpoint (e.g.https://llm.ai.e-infra.cz/v1). - Set
ANTHROPIC_API_KEYto the custom provider's API key. - Launch Claude Code โ it will use the custom endpoint for all requests.
Model selection limitation: Claude Code always sends claude-* model names in requests. In direct mode, the custom API must accept these names (some do, routing to a default model). To select a specific model, use the proxy script (skills/setup/scripts/proxy.mjs), which intercepts requests and replaces the model name before forwarding.
โ ๏ธ Claude model name in responses: Claude Code validates that the model field in the API response matches the claude-* name it originally sent. If the custom API returns a response with a non-Claude model name (e.g. qwen3.5-122b), Claude Code will error with an "unexpected model" message. The proxy script handles this automatically โ it saves the original claude-* model name from the request, then replaces the custom model name back in every response chunk before it reaches Claude Code.
Setting env vars on Windows (PowerShell):
# Direct mode โ set for current session
$env:ANTHROPIC_BASE_URL = "https://llm.ai.e-infra.cz/v1"
$env:ANTHROPIC_API_KEY = "<YOUR_API_KEY>"
claude
# Proxy mode
$env:ANTHROPIC_BASE_URL = "http://localhost:3456"
$env:ANTHROPIC_API_KEY = "any"
claude
For persistence on Windows, add these to your PowerShell profile ($PROFILE) or set them as System/User environment variables via Settings โ System โ Environment Variables.
For the Czech-specific e-INFRA CZ example โ including available models, direct mode, proxy mode, and full terminal workflow for both Unix and Windows โ read skills/setup/references/einfra-cc.md.
Security note¶
- Secrets stay local. API keys and OAuth tokens are stored only in
integrations.json(global or per-project), which is gitignored. Never write credentials to any other file. - Global config (
~/.neuroflow/integrations.json) is in the home directory โ not inside any repo โ so it can never be accidentally committed. - Per-project config (
.neuroflow/integrations.json) is gitignored via the project's.gitignore. Double-check this is in place before anygit push. - Non-secret settings (provider name, base URL, preferred model, proxy port) are safe to sync. If the user has a flowie profile linked (check
.neuroflow/flowie/sync.json), non-secretcustom_llmsettings can be written to.neuroflow/flowie/integrations.jsonand pushed to the user's private GitHub repo for cross-machine sync. Theapi_keyfield is always excluded from this sync.
Running the setup wizard¶
The full interactive wizard is /neuroflow:setup. It covers all integrations step by step. This skill provides agent-level knowledge so Claude can guide credential setup without running the wizard โ for example, answering "how do I configure Miro?" or surfacing the right reference when a user mentions e-INFRA.