Employee Guide

Your personal AI at work.

From now on we no longer share a single ChatGPT account. Everyone gets their own AI access through Nexus — chat, coding, images, even connecting tools like ClickUp — each with their own quota. Follow this guide; it takes 5 minutes.

The concept

Two addresses you need to know

Nexus is where you manage keys & quotas. Chat is where you actually talk with the AI.

Nexus

nxslabs.space

Your personal dashboard: get your API key, check remaining quota/balance, and monitor usage.

Chat

chat.nxslabs.space

Where you chat: pick a model, send images, and use connectors like ClickUp.

Get started

Getting started in chat

Sign in and go — every model is ready automatically, no key to paste.

  1. 1

    Sign in at chat.nxslabs.space

    Open chat.nxslabs.space → click Sign in with Google → choose your work account. That's it — no API key to paste.

  2. 2

    Pick a model and start

    Choose a model family — GPT, Claude, Gemini, DeepSeek, Qwen, or Grok (each shows its own logo) — and just type. Your access is set up automatically from your Nexus account, so all models are ready right away.

  3. 3

    That's all for chat

    As long as your Nexus quota/allowance is active, chat keeps working. Only coding tools (OpenCode, Cursor, the API) need your key — grab it from the dashboard (see For developers below).

Your key is your identity. All usage is recorded under your name and deducted from your quota — so never share it with anyone.

Models

Pick the model that fits the job

All models are available. Click the model name at the top left of chat to switch. Quick guide:

gpt-miniFast & economical — for everyday Q&A, summaries, and drafts.
gemini-flashFast, reads images (vision) — screenshots, document photos.
gpt-5The smartest — for heavy tasks, analysis, and complex reasoning.
claude-sonnetStrong for long-form writing & coding.
deepseek-v4-flashCheapest — the most tokens for your budget (text only).
deepseek-v4-proGreat value, strong reasoning (text only).
qwen-vl-maxQwen that reads images (vision) — plain qwen-max is text-only.
image-genGenerates images from a description.
Smarter models are usually more expensive per use. For lightweight things, gpt-mini or gemini-flash is more than enough and saves your quota.
Reading images (vision): GPT (gpt-5.6-sol, gpt-5.6-terra, gpt-5, gpt-mini), Gemini, Claude, Grok, and qwen-vl-max can read images. deepseek-* and plain qwen-max/qwen-plus are text-only. In coding tools (OpenCode/Cursor), a model only accepts images if its config declares the image input modality — see For developers below.

Connectors Open to all

Connect your tools from inside chat

Everyone can enable the built-in connectors (ClickUp, Notion, Linear, GitHub, and more) or add their own MCP server — no special access needed.

  1. 1

    Enable a connector (or add your own)

    In the message box, click the MCP Servers button → tick a built-in connector (e.g. clickup), or add your own MCP server. The first time you use one, you authorize it with your own account.

  2. 2

    Ask in plain language

    For example: “Create a task ‘Follow up with client A’ in the Sales list, due Friday”, or “Show my tasks due this week”. The AI will call ClickUp and show you the results.

This connector is linked to the real DRW ClickUp workspace. The changes you request (creating/modifying/deleting tasks) actually happen. Double-check before asking it to delete or bulk-modify anything.

For developers

Use it in coding tools (OpenCode, Cursor, Claude Code)

The same key works via API in AI coding tools — the endpoint is OpenAI-compatible.

  • Base URLhttps://api.nxslabs.space/v1
  • API key — get it from the dashboard (sk-…). Not from api.nxslabs.space — that's just the API gateway.

OpenCode

  1. 1

    Type /connect → choose Other

    Provider ID: type nexus. (The API key is set in opencode.json in the next step — OpenCode won't forward the /connect key for a custom provider.)

  2. 2

    Fill the model list automatically — paste this prompt into OpenCode

    Copy the prompt below, paste it into the OpenCode chat (any model will do, including a free one), and run it. It asks Nexus for the model block that matches your key and merges it into your config — nothing to figure out by hand. Run the same prompt again whenever you hear a model was added; that is all “updating” means here. Replace <PASTE_YOUR_NEXUS_KEY> with your sk-… key from the dashboard.

    Set up (or refresh) the "nexus" provider in OpenCode for me.
    
    1. Fetch my ready-made provider block:
       curl -s https://nxslabs.space/api/opencode.json -H "Authorization: Bearer <PASTE_YOUR_NEXUS_KEY>"
       (Windows PowerShell: curl.exe -s "https://nxslabs.space/api/opencode.json" -H "Authorization: Bearer <PASTE_YOUR_NEXUS_KEY>")
    
       The response already contains ONLY the models my key is allowed, each with the
       correct modalities — including "image" on the ones that can read pictures.
       Do NOT add, remove, rename or re-order anything inside it. If the command
       returns 401 my key is wrong; stop and tell me instead of guessing a list.
    
    2. Find my config file: ~/.config/opencode/opencode.json (or .jsonc), or
       opencode.json in the project root. Create it if neither exists, with
       {"$schema": "https://opencode.ai/config.json"}.
    
    3. MERGE, do not overwrite: replace ONLY the provider.nexus key with the block
       from step 1. Every other section — especially "mcp" and any other providers —
       must survive untouched. If provider.nexus already exists, replace it wholesale
       so removed models actually disappear.
    
    4. Tell me what changed: which models were added, and which were removed. Then
       remind me to FULLY RESTART OpenCode — it reads model capabilities once at
       startup, so a running instance will not see any of this.
    
    5. Detect my OS/shell (macOS zsh, Linux/WSL bash, Windows PowerShell) and give me
       the exact command to persist NEXUS_API_KEY=<PASTE_YOUR_NEXUS_KEY>:
       - macOS (zsh): append "export NEXUS_API_KEY=..." to ~/.zshrc, then source it
       - Linux / WSL (bash): append to ~/.bashrc, then source it
       - Windows PowerShell: setx NEXUS_API_KEY "..." (takes effect in NEW terminals)
       Keep apiKey in the config as "{env:NEXUS_API_KEY}" — OpenCode does NOT forward
       the /connect key for custom providers, so a literal key there is both a leak
       and unnecessary.

    Keeping the list current (one command)

    OpenCode does not discover models on its own for a custom provider, so whatever is written in opencode.json is what you get — new models added to Nexus simply never appear, with no error to tell you. Nexus can hand you the current block for your key:

    curl -s -H "Authorization: Bearer $NEXUS_API_KEY" \
      https://nxslabs.space/api/opencode.json

    It returns only the models your key is allowed, with the image modality already set on the ones that can read pictures. Paste the provider block into your opencode.json (replacing the old one), then fully restart OpenCode — it reads model capabilities once at startup. On Windows PowerShell:

    curl.exe -s -H "Authorization: Bearer $env:NEXUS_API_KEY" https://nxslabs.space/api/opencode.json

    Worth re-running whenever you hear a new model has been added — it is the same endpoint the setup prompt above uses, so the two can never disagree.

    Or fill it in manually if you prefer — create opencode.json and register the models you want:

    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "nexus": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "Nexus",
          "options": { "baseURL": "https://api.nxslabs.space/v1", "apiKey": "{env:NEXUS_API_KEY}" },
          "models": {
            "nexus-mini":       { "name": "Nexus Mini", "modalities": { "input": ["text"], "output": ["text"] } },
            "nexus-max":        { "name": "Nexus Max", "modalities": { "input": ["text"], "output": ["text"] } },
            "deepseek-v4-flash":{ "name": "DeepSeek V4 Flash", "modalities": { "input": ["text"], "output": ["text"] } },
            "qwen-plus":        { "name": "Qwen Plus", "modalities": { "input": ["text"], "output": ["text"] } },
            "deepseek-chat":    { "name": "DeepSeek Chat", "modalities": { "input": ["text"], "output": ["text"] } },
            "deepseek-vision":  { "name": "DeepSeek Vision", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "nexus-nano":       { "name": "Nexus Nano", "modalities": { "input": ["text"], "output": ["text"] } },
            "gpt-nano":         { "name": "GPT Nano", "modalities": { "input": ["text"], "output": ["text"] } },
            "gpt-4o-mini":      { "name": "GPT 4o Mini", "modalities": { "input": ["text"], "output": ["text"] } },
            "vision-mini":      { "name": "Vision Mini", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gpt-oss-mini":     { "name": "GPT OSS Mini", "modalities": { "input": ["text"], "output": ["text"] } },
            "gpt-5-mini":       { "name": "GPT 5 Mini", "modalities": { "input": ["text"], "output": ["text"] } },
            "llama-scout":      { "name": "Llama Scout", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gemini-flash-lite":{ "name": "Gemini Flash Lite", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "minimax":          { "name": "MiniMax", "modalities": { "input": ["text"], "output": ["text"] } },
            "sea-lion":         { "name": "SEA LION", "modalities": { "input": ["text"], "output": ["text"] } },
            "mistral":          { "name": "Mistral", "modalities": { "input": ["text"], "output": ["text"] } },
            "gemini-flash":     { "name": "Gemini Flash", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gpt-mini":         { "name": "GPT Mini", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "claude-haiku":     { "name": "Claude Haiku", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gpt-oss":          { "name": "GPT OSS", "modalities": { "input": ["text"], "output": ["text"] } },
            "nemotron":         { "name": "Nemotron", "modalities": { "input": ["text"], "output": ["text"] } },
            "qwen3.5":          { "name": "Qwen3.5", "modalities": { "input": ["text"], "output": ["text"] } },
            "grok-4.3":         { "name": "Grok 4.3", "modalities": { "input": ["text"], "output": ["text"] } },
            "grok-4.6":         { "name": "Grok 4.6", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "deepseek-v4-pro":  { "name": "DeepSeek V4 Pro", "modalities": { "input": ["text"], "output": ["text"] } },
            "qwen-max":         { "name": "Qwen Max", "modalities": { "input": ["text"], "output": ["text"] } },
            "qwen-vl-max":      { "name": "Qwen VL Max", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gemini-3-flash":   { "name": "Gemini 3 Flash", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "claude-sonnet":    { "name": "Claude Sonnet", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "kimi":             { "name": "Kimi", "modalities": { "input": ["text"], "output": ["text"] } },
            "kimi-code":        { "name": "Kimi Code", "modalities": { "input": ["text"], "output": ["text"] } },
            "glm":              { "name": "GLM", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "glm-coder":        { "name": "GLM Coder", "modalities": { "input": ["text"], "output": ["text"] } },
            "glm-mini":         { "name": "GLM Mini", "modalities": { "input": ["text"], "output": ["text"] } },
            "qwen3-coder":      { "name": "Qwen3 Coder", "modalities": { "input": ["text"], "output": ["text"] } },
            "glm-max":          { "name": "GLM Max", "modalities": { "input": ["text"], "output": ["text"] } },
            "kimi-k3":          { "name": "Kimi K3", "modalities": { "input": ["text"], "output": ["text"] } },
            "o4-mini":          { "name": "o4 Mini", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gemini-3-pro":     { "name": "Gemini 3 Pro", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gpt-5.6-terra":    { "name": "GPT 5.6 Terra", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gpt-5.6-sol":      { "name": "GPT 5.6 Sol", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "gpt-5":            { "name": "GPT 5", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } },
            "claude-opus":      { "name": "Claude Opus", "attachment": true, "modalities": { "input": ["text","image"], "output": ["text"] } }
          }
        }
      }
    }

    To read images the model must have "modalities": { "input": ["text","image"] } (plus "attachment": true), shown above for the vision models. Without the image modality, OpenCode says “this model does not support image input” and drops the picture — that was the real cause. After editing, fully restart OpenCode (it caches model capabilities at startup). The block above is generated from the live catalogue, so the image modality is already correct per model — text-only ones keep input: ["text"].

    Set your key as an env var — pick the line for your OS (key from the dashboard):macOS (zsh): echo 'export NEXUS_API_KEY=sk-…' >> ~/.zshrc && source ~/.zshrcLinux / WSL (bash): echo 'export NEXUS_API_KEY=sk-…' >> ~/.bashrc && source ~/.bashrcWindows (PowerShell): setx NEXUS_API_KEY "sk-…" — open a new terminal afterwards.Prefer not to use an env var? Put the key inline instead: "apiKey": "sk-…" (don't commit that file to git).
  3. 3

    Pick the nexus/gpt-5 model

    Open /models → all Nexus models appear under the nexus provider. Switch freely; they all draw from the same quota.

    Whichever model you pick (GPT, Claude, DeepSeek, Gemini) is still recorded in the Nexus dashboard and deducted from your quota — because it goes through your own key. It shows up with a 1–5 minute delay (not realtime). Use a single key of your own; don't share your key with others, or the usage gets merged together.

Claude Code, Cursor, curl, Python, and Node — ready-to-paste setup examples are in your dashboard. The base URL & key are the same.

Quota & balance

How usage is counted

Every request to the AI uses part of your quota — automatically, no math needed on your end.

  • Usage is deducted per token. You can check your remaining quota/balance anytime in the Nexus dashboard.
  • When your quota runs out, access stops automatically — no surprise bills.
  • Need more? Contact your unit's admin for a top-up / quota increase.

Ground rules

What to do & what not to do

Do

  • Use only your own key.
  • Choose an economical model for lightweight tasks.
  • Review the AI's output before relying on it for important decisions.
  • Report anything odd to an admin, or if your key leaks.

Don't

  • Share or paste your key in public places / group chats.
  • Use one account for the whole team.
  • Paste sensitive customer data unnecessarily (ID numbers, cards, passwords).
  • Tell ClickUp to bulk-delete/modify without checking first.

FAQ

Frequently asked questions

Why don't we share one ChatGPT account anymore?+

Sharing a single account breaks the terms of service, makes it impossible to track who used what, and if one person hits a limit or gets blocked, everyone goes down with them. With Nexus, each person has their own key: secure, personal, and with usage tracked cleanly.

Is my usage monitored?+

What Nexus records is cost & token count per person — for quota and reporting purposes. Your conversation history is stored in your account at chat.nxslabs.space. Treat it like a company work tool: avoid putting in personal data you don't need to.

Chat stops working or says my access ran out?+

Chat needs no key — access is automatic from your Nexus account. If it stops, your quota/allowance is likely used up: check the Nexus dashboard and contact an admin for a top-up. (Access also turns off if your Nexus account is deactivated.)

Can I use it in OpenCode, Cursor, or Claude Code too?+

Yes. The same key works in any OpenAI-compatible tool — base URL https://api.nxslabs.space/v1. See the 'For developers' section above (OpenCode) and the Claude Code/Cursor/Python/Node/curl examples in the Nexus dashboard.

Which model should I use?+

Start with gpt-mini or gemini-flash for everyday things. Move up to gpt-5 or claude-sonnet only when the task is heavy (analysis, long-form writing, complex coding).

How do I use connectors / MCP?+

Open the MCP Servers menu in the message box. Everyone can enable the built-in connectors (ClickUp, Notion, Linear, GitHub, and more) or add their own MCP server — the first time you use one, you authorize it with your own account.

My key leaked / I want to replace it.+

Tell an admin right away. The key can be deactivated and replaced on the Nexus side, then you paste the new key into chat.

Need help

Still stuck?

Contact your unit admin or IT team. Include a screenshot of the error message if you have one — it really helps speed up the fix.