Skip to content
kaiport

AI Pilot on mobilePreview

AI Pilot in kaiport for iPhone and iPad – part of kaiport Pro, with your provider and API key, approvals and Autopilot as on the desktop, and what is sent to the model.

The screenshots of the mobile app on these pages are placeholders and will be replaced with screens of the released app.

AI Pilot in kaiport for iPhone and iPad follows the desktop app: you bring your own model with your own API key, and AI Pilot works inside your SSH session. It runs commands with your approval, reads their output, and reads and writes files over SFTP. In storage sessions it browses, searches, writes folder reports with cleanup advice and runs bulk changes as a plan you review. For the full picture, see the AI Pilot overview.

Providers and API key

The phone offers the provider presets of the desktop app, without the local servers Ollama and LM Studio:

PresetAPI URLAPI
Anthropichttps://api.anthropic.comAnthropic Messages API
OpenAIhttps://api.openai.com/v1OpenAI-compatible
OpenRouterhttps://openrouter.ai/api/v1OpenAI-compatible
Groqhttps://api.groq.com/openai/v1OpenAI-compatible
Mistralhttps://api.mistral.ai/v1OpenAI-compatible
DeepSeekhttps://api.deepseek.com/v1OpenAI-compatible
Togetherhttps://api.together.xyz/v1OpenAI-compatible

You can also enter your own URL, for example a proxy or another OpenAI-compatible service. As on the desktop, the app detects from the URL whether it speaks the Anthropic Messages API or an OpenAI-compatible chat completions API. For a URL it doesn't recognize, it keeps the API you selected before.

Models aren't included: AI Pilot uses your own account with the provider. Enter your API key, and the app keeps it in the iOS keychain on this device. It stays there, so you enter the key once on each device. Then choose a model; the app can load the list of models from the provider and keeps the last list it loaded. AI Pilot is ready as soon as a model is chosen and the key is stored.

In your SSH session

AI Pilot works in the terminal you see, not in a hidden shell. It can:

  • type commands into your session, wait until the prompt is back and read the output; with shell integration on the server, it also gets the exit code,
  • read the screen and send input to programs that wait for it, including special keys such as Ctrl-C,
  • read and write files over SFTP instead of typing cat or heredocs,
  • check the screen again when a command keeps running or waits for input, instead of starting the next command.

As on the desktop, AI Pilot doesn't ask for passwords in the chat. When a command such as sudo asks for one, you type it into the terminal yourself.

To know where AI Pilot works, the app collects a few facts right after the sign-in, on a separate channel: kernel, operating system and distribution, host name, user and login shell, whether sudo works without a password, package managers, common tools, CPUs, memory, root disk and uptime. Nothing is typed into your terminal for this.

When the window is wide enough (iPad, or an unfolded phone), AI Pilot sits next to the terminal or file browser; otherwise it opens as a sheet at half height, so the terminal stays visible.

AI Pilot (preview)
Preview of AI Pilot in the kaiport iOS appPreview of AI Pilot in the kaiport iOS app

AI Pilot (preview)

Approvals and Autopilot

The app follows the rules of the desktop app:

  • Approval by default: every command AI Pilot wants to run waits for your approval.
  • Autopilot (off by default) runs commands without asking, but potentially dangerous commands still need your confirmation.
  • Per connection: the AI instructions for this connection and the lists of Allowed commands (AI) and Denied commands (AI) from the desktop connection dialog are part of the connection and apply on the phone as well. Destructive commands and overwrites always ask, and AI Pilot keeps an audit log of everything it did.

The list of dangerous commands is the same as on the desktop. It includes, for example:

KindExamples
Deleting datarecursive rm (rm -r, rm -rf), rm -f /, shred, mkfs, dd onto a device, writing to a disk such as /dev/sda
Disksfdisk, parted, wipefs
Powershutdown, reboot, poweroff, halt
Permissions and userschmod 777, chown -R on /, passwd, userdel, usermod, deluser, groupdel
Processeskill -9 -1, killall, pkill -9
Network and accessflushing iptables or nft rules, ufw disable, ufw reset, stopping or disabling SSH, network or firewall services
DatabasesDROP TABLE, DROP DATABASE, TRUNCATE TABLE
Gitgit push --force, git reset --hard, git clean -f
Packages and jobsremoving packages with apt, yum, dnf, zypper or pacman, crontab -r
Otherpiping curl or wget into a shell, history -c, a fork bomb

How approvals, the lists and Autopilot work in detail: Approvals and safety.

Settings

SettingDefaultWhat it does
Provider and API URLAnthropic, https://api.anthropic.comWhere AI Pilot sends its requests: a preset or your own URL
API key–Your key with the provider, kept in the iOS keychain
Model–The model AI Pilot uses; the list can be loaded from the provider
AutopilotOffRuns commands without asking; dangerous commands still ask
Additional instructionsEmptyAdded to the system prompt, for example conventions of your servers
Temperature0.2How creative the answers are; lower values are more predictable
Max. steps per request30How many commands AI Pilot may run in a row for one request
Send file contentsOnWhether file contents may go to the provider; when off, AI Pilot works with names, sizes and dates only
Limit per file64 KBThe most content of one file that goes to the model at once; larger files are cut off

Privacy

As on the desktop, AI Pilot's requests go straight from the device to the provider you configured, with your key. There are no kaiport servers in between, and nothing is sent to us. The provider receives:

  • your messages and the conversation with AI Pilot,
  • your additional instructions and the AI instructions of the connection,
  • the output of commands and the screen contents that AI Pilot reads,
  • the host facts collected after the sign-in,
  • file contents, only if sending file contents is on, and only up to the limit per file.

More on this: Context and privacy.