Skip to content

NeoServer AI Chat: Providers, Skills and Plan Mode

Set up NeoServer's AI chat with OpenAI, DeepSeek, Anthropic or any compatible provider, then let it inspect servers, run commands, transfer files, browse the web and reuse your own skills.

8 min read

NeoServer’s AI chat is an agentic assistant that works on your servers. Depending on the skills you enable, it can read system information, run commands after you approve them, move files back and forth, open web pages in an in-app browser, and follow custom skills you write once and reuse forever. It talks to any OpenAI-compatible, Anthropic or ChatGPT-account provider you configure.

Open AI Chat from the side menu. From a terminal, select some output and pick Ask AI to open the chat with that text pre-filled and the server already selected. An empty chat shows starter cards — tap one to ask about disk usage, load, Docker or Nginx in a single move.

Quick reference

SettingDefaultRange or options
Temperature0.80 to 1
Max Output LengthUnlimitedUnlimited, 500, 2000, 8000
Reasoning EffortMediumOff, Minimal, Low, Medium, High, XHigh, Max
Reply LanguageAutoAuto, English, Chinese, Japanese, Korean, Spanish, French, German
System PromptEmptyFree text
Confirm server commandsOnOn, Off
Browser skillsOffOn, Off
Plan modeOffOn, Off
User AgentDefaultDefault, Custom
SOCKS5 proxyOffAny proxy from Settings → Socks5 Proxy List

Set up a provider

Open the ⋯ menu and choose Model Settings. Tap + and pick a preset — OpenAI, OpenAI (OAuth), DeepSeek, OpenRouter, SiliconFlow, Anthropic, Zhipu GLM — or Custom for any other service. The edit screen previews the exact endpoint your settings resolve to.

  • API key providers: paste the key from your provider’s dashboard. For custom services, set the Base URL and pick the protocol: OpenAI (Chat Completions), OpenAI (Responses) or Anthropic Messages. Switching Zhipu GLM to the Anthropic protocol swaps in its Anthropic-compatible endpoint automatically.
  • OpenAI (OAuth): no API key needed. Tap Sign in with ChatGPT, finish the login in your browser, and come back — the session renews itself automatically. An account that is already signed in shows a masked account id, with options to log out or switch accounts.
  • Models: type a model ID, or tap the sync button to pull the live model list from the provider — a searchable sheet with a letter index bar and Select All. OAuth providers show a bundled list of Codex models instead. Model IDs change often; the sync sheet is the reliable way to see what your account can actually use.

Tap the title bar to switch provider and model mid-conversation without leaving the chat. Keys and OAuth sessions stay on the device and are only sent to the provider you configured.

Chat basics

The composer is a self-sizing text field with a round send button that turns into a stop button while the assistant streams. Around it:

  • + attaches a file, photo or video, or captures one with the camera. Attachments are copied to the assistant’s working directory and their path lands in the composer, so you can say “summarize this log”.
  • / opens skill suggestions as you type a slash-prefixed name — pick one to reference the skill explicitly.
  • Plan, Browser and Servers toggle plan mode, open the in-app browser, and pick the target machines — see Target servers for how the scope works.
  • The token gauge appears once a conversation has usage; tap it for a per-conversation breakdown of input, output and cached tokens.
  • New Chat and the rest live in the ⋯ menu: History, Sent Messages, Model Settings, Chat Settings, Skills and Token Usage.

Touch and hold your own message to copy, edit or share it — editing returns the text to the composer for a re-send. Assistant replies end with an action bar: copy the text, copy a single code block (or pick from several), share, or Regenerate to retry the answer, alongside the tokens the turn consumed.

Replies render as rich text — headings, tables, code blocks, math formulas and Mermaid diagrams. When a workflow, architecture or relationship is easier to show than to tell, the assistant draws a Mermaid chart on its own: the diagram is rendered inline, and the text around it stays selectable. Diagrams are drawn natively without a web view — flowcharts, sequence, class and ER diagrams, pie charts, Gantt, git graphs, mindmaps and many more — and a diagram type the parser does not know falls back to its source code. The native NeoServer Mac app renders them the same way; only the iOS app running on a Mac (Catalyst) falls back to plain-text replies.

History and sent messages

Chat History lists past conversations grouped by day, each row showing the message count and total tokens, with full-text search across titles and message bodies — matches preview the hit message inline. Long-press a row to open or delete it; restoring a previous conversation requires NeoServer Premium.

Sent Messages keeps the last things you sent — tap any entry to refill the composer. It is searchable, swipe-to-delete, and clearable in one tap.

Target servers

The Servers button opens the target picker — the single place that decides which machines the assistant can touch. Pick any combination of individual servers and server groups; a selected group stands for every server inside it, and overlaps with individually picked servers are deduplicated. The picker is searchable by server name, host or username, shows a running summary like “3 servers · 1 group”, and has a Clear button to reset.

The choice works like a scope, not a connection:

  • With nothing selected, the assistant can only chat — server skills are unavailable.
  • Unselected servers are invisible to the assistant; it cannot list, inspect or touch them.
  • The picked targets are announced to the assistant by name, so it can address one specific machine with a serverName argument instead of hitting every target.
  • A command sent without a target runs on every picked server in turn, with the output combined per machine under ===== name (host) ===== headers. Uploads and downloads report which server they came from.

Selections persist across chats. The terminal Ask AI entry starts with exactly that terminal’s server selected, so a quick question never fans out to other machines.

Server skills

Server skills let the assistant act on the servers picked in the chat: run shell commands, inspect the system, read and write files, create directories, delete paths, and download or upload files. A local sleep tool lets it wait between steps without touching any server.

Every command is shown before it runs: an inline card lists the exact command and arguments, dangerous commands are flagged in red with haptics, and you tap Run to approve. Tool cards expand to show parameters and elapsed time, downloads show a progress bar, and results can be copied or previewed in place — downloaded files open in a full-screen previewer with a share button.

Keep Confirm server commands on — the default — so every proposed command still passes through you. What the chat can touch at all is decided by the target picker.

Plan mode

Plan mode turns the chat read-only and persistent: it stays on until you turn it off, and saying “continue” or “apply the changes” does not lift it. In this mode the assistant gets read-only tools only — server inspection with a stated reason and safety assessment, plus reading files and directories — while command execution, file writes, uploads and downloads, and browser tools are all unavailable.

Use it when you want a diagnosis or a step-by-step plan first: “why is this container restarting?”, “draft the migration steps for this nginx config”. Once the plan looks right, switch Plan mode off and let the assistant carry it out — with confirmation still guarding every command.

Browser skills

Browser skills give the assistant an in-app browser it can drive: open pages, inspect results, click through flows and manage its own tabs. The browser has an address bar with load progress, back/forward/reload controls, and you can share the current URL or hand a page over to Safari.

Typical uses are reading a dashboard behind a login you have already made in the browser, checking a public API endpoint, or fetching documentation during a task. The feature is off by default — enable Browser skills in Chat Settings, then open the browser from the input bar to watch what it is doing or take over mid-flow.

User skills

A user skill is a reusable instruction pack: a name, a description and a prompt body. Write one in Chat Settings → User Skills — for example “harden-ssh” with the steps you always take on a new server — and the assistant can look it up and follow it whenever the task matches. Type /name in the composer to invoke a skill explicitly.

You can also create skills without leaving the chat: ask the assistant to save the current procedure as a skill and it appears in the manager; re-running it on an existing name updates the skill in place. The built-in skill-creator skill helps draft new ones and can be edited but not deleted. Skills sync over iCloud, can be exported as markdown, and disabled ones drop out of the assistant’s catalog.

Network settings

Two settings in Chat Settings control how requests leave the device:

  • User Agent sends a custom UA string with every AI request. Some providers serve certain models only to specific client apps — match the expected UA there.
  • SOCKS5 proxy routes chat requests, model-list fetches and OAuth token exchanges through a proxy defined in Settings → Socks5 Proxy List (username and password supported). Browser sign-in pages use your browser’s own proxy settings. Requires iOS 17 or macOS 14 or later; on older systems the option stays off.

Chat settings

The Chat Settings screen holds the defaults from the quick-reference table above:

  • System Prompt is prepended to every request. A short, concrete instruction works best, for example: You are a careful server admin. Prefer minimal commands and explain each step.
  • Temperature trades determinism for creativity — keep it low for ops work.
  • Max Output Length caps each reply; Unlimited lets the model decide.
  • Reasoning Effort applies to models that support it and is ignored by the rest. Off omits the field entirely.
  • Reply Language forces a fixed answer language; Auto lets the model follow your messages.