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 |
Credentials โ set once, applies to all projects on this machine |
| Global user identity | ~/.neuroflow/user.yaml |
GitHub username + known hives โ pre-fills /neuroflow setup across projects |
| Per-project | .neuroflow/integrations.json |
Overrides global credentials 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 and ~/.neuroflow/user.yaml
- Windows: %USERPROFILE%\.neuroflow\integrations.json and %USERPROFILE%\.neuroflow\user.yaml
user.yaml schema:
flowie_handle: {github-username}
flowie_repo: {github-username}/flowie
hives:
- org/repo # one entry per team hive the user is a member of
/setup Step 6. Read by /neuroflow Step 1b to pre-fill the GitHub username without asking again.
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": "kimi-k2.5",
"proxy_mode": "custom",
"proxy_port": 4001
}
}
.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.
Model selection during setup¶
When setting up a custom LLM provider, always ask the user which model to use. Do not assume a default silently.
Step 1 โ try to fetch available models from the API:
Or via Python:
import httpx
r = httpx.get("<BASE_URL>/models", headers={"Authorization": "Bearer <API_KEY>"})
print([m["id"] for m in r.json().get("data", [])])
If this succeeds, present the model list to the user. If it fails (auth error, endpoint not supported), skip to Step 2.
Step 2 โ ask the user to pick:
I couldn't fetch the model list automatically. Please check the provider's documentation or dashboard for available model names, then tell me which one to use.
For e-INFRA CZ, the current models are listed in
skills/setup/references/einfra-cc.mdโ but the list changes, so verify at https://llm.ai.e-infra.cz if unsure.
Step 3 โ recommend based on use case:
Once you have the model list (fetched or provided by user), recommend based on their project type:
| Use case | Recommend |
|---|---|
| Claude Code agentic workflows, MCP tools, neuroflow | Model with best tool-calling support (e.g. agentic on e-INFRA) |
| General research, writing, analysis | Largest general-purpose model available |
| Reasoning / complex multi-step tasks | Thinking/reasoning model if available |
| Fast iteration, simple tasks | Smallest/fastest model |
Always state your recommendation and why, then confirm:
I recommend
agenticfor your setup โ it is e-INFRA's purpose-built alias for tool-calling workloads, which matters for Claude Code's agentic workflows. Use this? (Y / type a different model name)
Save the confirmed model as model in integrations.json.
Recommended approach for e-INFRA: native direct connection (no proxy)
The e-INFRA gateway speaks the Anthropic protocol natively โ Claude Code connects directly with per-process env vars. Use an isolated CLAUDE_CONFIG_DIR so the gateway session and a normal subscription claude can run concurrently with zero shared state:
CLAUDE_CONFIG_DIR="$HOME/.claude-meta" \
ANTHROPIC_BASE_URL="https://llm.ai.e-infra.cz/v1" \
ANTHROPIC_AUTH_TOKEN="<key>" \
ANTHROPIC_MODEL="agentic" \
ANTHROPIC_SMALL_FAST_MODEL="mini" \
ANTHROPIC_DEFAULT_HAIKU_MODEL="mini" \
ANTHROPIC_DEFAULT_SONNET_MODEL="agentic" \
ANTHROPIC_DEFAULT_OPUS_MODEL="agentic" \
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 \
claude
Key points (full detail in skills/setup/references/einfra-cc.md):
- ANTHROPIC_BASE_URL is https://llm.ai.e-infra.cz/v1.
- Map the DEFAULT_SONNET/DEFAULT_OPUS slots to the chosen gateway model so no request goes out with a claude-* id; route small/background tasks to mini.
- Fetch the model list live (/v1/models) โ it changes over time; /model <id> switches mid-session.
- The gateway allows 4 parallel requests per key โ avoid heavy parallel subagent fan-out.
- For models with a context window below 200k, set CLAUDE_CODE_AUTO_COMPACT_WINDOW (~75% of the real window, from /v1/model/info).
Note: on Windows, use ANTHROPIC_AUTH_TOKEN โ more reliably picked up by Claude Code CLI than ANTHROPIC_API_KEY.
Legacy proxy (proxy.py): only needed for OpenAI-compatible-only providers, not for e-INFRA anymore. The proxy, its LiteLLM comparison, and Windows port troubleshooting live in the legacy appendix of 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.