One-click open terminal via neoserver:// scheme link on iOS

Author: Neo Huang
LAST UPDATED: 2026-08-15 16:05:18

Index

NeoServer

NeoServer offers a comprehensive management solution for your servers, NAS (Network Attached Storage), and Linux-based routers across iPhone, iPad, and Mac platforms.

A neoserver:// link, just one click, and NeoServer automatically wakes up, connects to the server, and opens the terminal exactly where you want it— maybe to a specific machine, a specific tmux session, or a certain directory.

Save it to Safari favorites, Notes, desktop icons, or Siri Shortcuts, or AirDrop it to a colleague, it just works.


1. How to write a terminal link

All terminal links look like this:

neoserver://terminal?host=<server>&port=<port>&user=<user>&name=<terminal_alias>&tmuxName=<tmux_session>&zellijName=<zellij_session>&workdir=<directory>&command=<command>
Parameter Required What to fill in
host Server IP or domain. Required, leaving it blank invalidates the link.
port SSH port, defaults to 22 if omitted. Valid range is 1–65535; invalid values invalidate the link.
user Login username, defaults to root if omitted.
name The alias name for this terminal (for display purposes only, not used for server matching).
tmuxName Automatically enter this tmux session upon connection.
zellijName Automatically enter this zellij session upon connection.
workdir Automatically cd into this remote directory upon connection.
command Automatically execute a command upon connection (with a carriage return). Use %0A to separate multiple lines.

⚠️ Priority: tmuxName > zellijName > command > workdir.

  • tmuxName / zellijName and command do not combine: if a session name is provided, it will only attach to that session, and command will be ignored (attaching takes over the terminal input, preventing commands from being injected).
  • command can be used with workdir: it will cd into the directory first, then execute the command.
  • tmuxName / zellijName / workdir are mutually exclusive.
  • name is purely a display name; it coexists with anything and does not affect the logic above.

Just copy the examples and modify them to fit your needs:

# Simplest: only provide host
neoserver://terminal?host=1.2.3.4

# Specify port and user
neoserver://terminal?host=1.2.3.4&port=2222&user=deploy

# Connect and directly enter the tmux session named main
neoserver://terminal?host=1.2.3.4&user=root&tmuxName=main

# Connect and directly enter the zellij session named dev
neoserver://terminal?host=1.2.3.4&user=root&zellijName=dev

# Connect and automatically cd to the logs directory
neoserver://terminal?host=1.2.3.4&user=root&workdir=/var/log/nginx

# Give this terminal an alias name (for display in lists, not used for matching)
neoserver://terminal?host=1.2.3.4&user=root&name=production server

# Connect and automatically execute ls -la (%20 = space)
neoserver://terminal?host=1.2.3.4&user=root&command=ls%20-la

# First cd into /var/log, then execute tail -f syslog
neoserver://terminal?host=1.2.3.4&user=root&workdir=/var/log&command=tail%20-f%20syslog

# Multiple lines: first cd /tmp then pwd (%0A = line break)
neoserver://terminal?host=1.2.3.4&user=root&command=cd%20%2Ftmp%0Apwd

2. After connecting, where will the terminal land

This is the most useful part of terminal links—depending on the parameters you provide, the terminal will open in different places after connecting:

Parameters you provide Terminal state after connecting
Only host (+ optional port/user) Opens a standard terminal, landing in the user's home directory
tmuxName=main Automatically tmux attach to the main session, returning to exactly where you left off
zellijName=dev Automatically enters the dev zellij session
workdir=/var/log Automatically cd into the /var/log directory
command=ls -la Automatically types and executes this command once the terminal is ready
workdir=/var/log&command=tail -f syslog First cd into /var/log, then executes tail -f syslog

Why distinguish between these three?

  • tmux / zellij sessions: If the network drops, the app is closed, or you reconnect from another phone, the session persists and processes are not lost. You can share a tmux session on a server with a colleague, allowing both of you to enter the same screen to troubleshoot together.
  • Directory: Instead of manually typing cd /opt/app/logs every time you connect, let the link drop you right there.
  • Command: Automatically run a command upon connecting, such as pulling logs, checking statuses, or running a deployment script. This can be stacked with workdir (entering the directory before running).

name does not affect the post-connection behavior; it simply gives the terminal a recognizable name for easy identification in the list.


3. Copy the link inside the App (no need to write manually)

Writing links manually is prone to errors. NeoServer allows one-click copying in three places. Once copied, you can paste it anywhere.

1. Copy the link for "this server"

Servers tab · Server listSwipe left on a server → Copy Scheme Link

The copied link looks like:

neoserver://terminal?host=...&port=...&user=...

2. Copy in terminal quick mode

Terminal tab · Server list (quick mode) → Long press a server → Copy Scheme Link

3. Copy the link for "this session" ⭐ Most useful

Terminal tab · Session listLong press a session → Copy Scheme Link

This link packages "connect to server X's session Y":

  • If the session is tmux → automatically includes &tmuxName=...
  • If the session is zellij → automatically includes &zellijName=...
  • Standard session → only includes host/port/user

A Link Copied prompt will pop up upon successful copy, and the link will be in your clipboard.

✏️ The copied link only contains host/port/user (session links also include tmuxName or zellijName). Want to add name (alias) or command (auto-execute)? Manually append them to the end of the link; the App does not generate these two at the moment.

💡 Long press and copy a currently running tmux session to send to a colleague. They can open it with NeoServer to directly attach to the same session—both of you will enter the exact same terminal screen.


4. How to open this link

neoserver:// is an iOS link protocol. Anywhere you can click a link, it can wake up NeoServer:

  • Safari: Paste it into the address bar and hit enter, or save it to favorites and click it.
  • Notes / Reminders: Save an entry, and click it for direct access.
  • Shortcuts: Paste the link into an "Open URL" action → you can bind it to Siri voice, desktop icons, or automations.
  • AirDrop: Send a link between two iPhones, and the recipient can click to connect instantly.
  • Mail: Send the link as text; the recipient can copy it into Safari to open.

📱 When clicking neoserver:// for the first time on your device, iOS will prompt "Open in NeoServer?". Just confirm, and it won't prompt again.


5. Three practical scenarios

🏠 Scenario 1: Turning "connect to production tmux" into a desktop icon

You need to connect to the main tmux session on the production server every day. Instead of opening the App → finding the server → connecting → attaching every time, turn it into an icon:

  1. Copy this server's link in the App, then manually append &tmuxName=main;
  2. Open iOS "Shortcuts" → Create new → Add a "URL" action, and paste this link;
  3. Add an "Open URL" action;
  4. Click Share → Add to Home Screen, name it "Connect Prod", and choose an icon.

From now on, clicking this icon on your desktop will automatically connect NeoServer and enter the main session, completely hands-free.

🎙️ Scenario 2: Connecting with voice

Connect the above Shortcut to Siri, and set a phrase like "Hey Siri, connect prod". Once spoken, your phone will connect automatically.

🤝 Scenario 3: Throwing a session to a colleague

  1. Terminal · Session list → Long press this session → Copy Scheme Link;
  2. Send it to a colleague (AirDrop / WeChat both work);
  3. They open it with NeoServer → automatically attach to the same tmux session.

(Prerequisite: The NeoServer server library on their iPhone must also be able to connect to the same host.)

🖥️ Scenario 4: Running a command with one tap from a desktop icon

If you need to check a machine's container status daily and don't want to manually type docker ps every time you connect:

  1. Copy the server link, and manually append &command=docker%20ps;
  2. Follow Scenario 1 to turn it into a desktop icon, and name it "Container Status".

From now on, click the icon → NeoServer connects → automatically executes docker ps, and the results will print directly in the terminal.


6. Terminal link FAQs

Q: I clicked the link, but it connected to the wrong server? A: NeoServer finds servers based on host (+ port if provided + user if provided). If you have two servers in your library with the same host, it will connect to the first match. Providing the port or user allows for precise differentiation.

Q: What happens if I click a link for a server that isn't in my library? A: The "New Server" page will no longer pop up. It will now directly use the host/port/user from the link to open a temporary terminal on the fly:

  • It prioritizes trying credential-less authentication (suitable for scenarios like Tailscale SSH where the connection itself has already verified identity);
  • If the server requires a password, it falls back to NeoServer's existing password / keyboard-interactive authentication;
  • The temporary server is not written into your server library; it is released once closed;
  • However, a snapshot containing no passwords or private keys is left in "Recent Sessions", so you can still reconnect by tapping it after restarting the App.

The original link's name / tmuxName / zellijName / workdir / command will take effect as usual.

Q: Can I include the password directly in the link to avoid typing it every time? A: No. This is a security restriction—links will never carry passwords. Even if you manually add password=xxx, it will be ignored. Passwords are only handled via the App's internal Keychain.

Q: What is name used for? A: It's simply an alias name for this terminal session, making it easier for you to identify in lists. It does not participate in server matching—two links with the same host but different names will still connect to the same server.

Q: Are there security risks with command? A: A little, so you need to be aware. command will automatically execute (with a carriage return) upon connecting. Any App or webpage can issue a neoserver://...&command=... link, so do not click unknown links containing a command. The iOS "Open in NeoServer?" prompt acts as the sole interception point the first time; for servers requiring passwords, it cannot inject credentials anyway and will simply fall back to standard authentication.

Q: Can I enter directories with Chinese characters or spaces into workdir? A: Yes. Just write it directly, for example, workdir=/home/me/my logs. The App will automatically handle special characters. The most reliable method is to copy it using the App rather than writing it manually.

Q: No response after clicking? A: ① Make sure it starts with neoserver://; ② The first time, it will prompt for "Open in NeoServer" confirmation; ③ Check that host is not left blank; ④ It doesn't matter if the App isn't in the foreground, it will wake up automatically.

Q: Can it be opened on Android / Windows? A: No. neoserver:// is only recognized by iPhones / iPads with NeoServer installed.

Features

Multi Device

Support across multiple platforms: iPhone, iPad, Mac.

iCloud Sync

iCloud Sync ensures all your configuration information is securely stored in iCloud, facilitating seamless synchronization across your multiple devices.

Security

Security, featuring support for password and biometric (FaceID, TouchID) unlocking mechanisms.

A wealth of features.

providing support for SSH terminal, script execution, containers management, and metrics monitoring with zero server-side configuration required.

Screenshots