Claush User Manual

From server setup to chat operations and AI character configuration. A step-by-step guide to every feature in Claush.

Getting Started

Claush is an app that lets you control Claude Code — the world's most advanced AI coding agent — from your iPhone. Simply chat with the AI using a messaging-style interface, and handle everything from coding to deployment right on your phone.

Requirements

RequirementDescription
Linux VPSA server accessible via SSH. Any provider works: AWS, GCP, Vultr, DigitalOcean, etc. Ubuntu 22.04 or later recommended.
Claude Code LicenseAn Anthropic API key or a Claude Max/Pro/Teams subscription.
SSH Key PairEd25519 recommended. Place the public key on your server and register the private key in the app.
Automatic Setup: Claush automatically detects and installs tmux, Node.js, and Claude Code on first connection. No prior installation is required.

How to Create SSH Keys

If you don't have SSH keys yet, run the following commands in your PC's terminal to create them.

1

Generate a Key Pair

ssh-keygen -t ed25519 -C "your-email@example.com"

When prompted for a save location, press Enter to use the default (~/.ssh/id_ed25519). You can optionally set a passphrase.

2

Register the Public Key on Your Server

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server-ip-address

Enter your server's password and the public key will be automatically registered. Some VPS providers also let you register public keys through their control panel (web management console). In that case, register the output of cat ~/.ssh/id_ed25519.pub.

3

Copy the Private Key

cat ~/.ssh/id_ed25519

Copy everything from -----BEGIN OPENSSH PRIVATE KEY----- to -----END OPENSSH PRIVATE KEY----- and paste it into the private key field on the Claush server setup screen.

Private Key Security: Your private key is as sensitive as a password. Never share it with others or send it via chat or email.

Server List

When you open the app, the server list screen is displayed. Each server has two buttons.

ButtonIconFunction
Chat💬Connect to the server and open the chat screen
Settings⚙️Open the server settings screen

The gear icon (⚙️) in the top left opens the app-wide settings screen. The + button in the top right lets you add a server.

Server list screen. Each row shows a server name with a chat button (speech bubble icon) and a settings button (gear icon) on the right side

Settings

Tap the ⚙️ gear icon in the top left of the server list to open the settings screen. Settings are organized as a hub with four categories.

CategoryContents
ProfileName, nickname, age, gender, programming experience
AI CharacterAI image generation API key settings, character list, shop
LanguageDisplay language selection
LicensesLicense information for libraries used
Settings hub screen. Four items listed: Profile, AI Character, Language, and Licenses
Profile settings screen. Input fields for last name, first name, nickname, virtual age, gender, and programming experience

Profile

Go to Settings > Profile to configure the following information. AI responses will be tailored based on your profile.

  • Name (last name, first name)
  • Nickname
  • Virtual Age
  • Gender
  • Programming Experience: Selecting "No experience" will make the AI avoid technical jargon and provide more gentle guidance

AI Image Generation

Go to Settings > AI Character > "AI Image Generation" section to register an API key for automatic character image generation.

ProviderModel
OpenAIgpt-image-1
Geminigemini-2.5-flash-image

Once an API key is registered and tested successfully, you can switch between "Select Image" and "Generate with AI" on the character creation screen. Choosing "Generate with AI" displays appearance settings (gender, skin, body type, age, hair color, hairstyle) and a preview generation button.

Registration is Optional: Even without registering an API key, you can manually upload an image or use the default icon.

Language Settings

Go to Settings > Language to change the display language. The following 10 languages are supported.

  • Japanese, English, Chinese, Korean, Spanish
  • French, German, Portuguese, Italian, Arabic

Switching the language is immediately reflected across the entire UI. You can give instructions to the AI in any language.

Language settings screen. A list of 10 languages to choose from for the display language

AI Characters

In Claush, you can give the AI a name, speech style, and personality to create "your own personal companion." Characters remember conversations and naturally adjust their emotional distance based on affinity level.

ItemDetails
Number of CharactersUp to 5 characters can be created
Server RelationshipOne character is assigned per server
ModificationsCannot be changed after creation. Create a new one to make changes
Default"Machine" character is preset. No nurturing features
Nurturing is Optional: Even without using the character feature, you can keep the default "Machine" and enjoy the standard Claude Code experience.

Creating a Character

Go to Settings > AI Character > "Add Character" to open the creation screen.

1

Enter a Name

Enter any name for the character. Examples: Sebastian, Miku

2

Select a Preset

Choose a base type: Butler / Maid / Friend / Partner. Selecting one automatically configures speech style, personality, and how they address you.

3

Customize Speech Style & Personality

Speech Style: Polite / Formal / Casual / Refined / Cool / Alluring
Personality: Cheerful / Calm / Reserved
Your Nickname: How the character addresses you (e.g., "Master," "Boss")

4

Set an Image (Optional)

Use "Select Image" to upload manually, or if an AI image generation API key is configured, switch to "Generate with AI." In AI generation mode, you can set appearance details (gender, skin, body type, age, hair color, hairstyle) and generate a preview.

5

Create

Tap the "Create" button to finish. You can assign this character to a server from the Claude section in server settings.

Character creation screen. Name input, preset selection (Butler/Maid/Friend/Partner), and speech style/personality customization are displayed
Cannot Be Changed After Creation: A character's name, speech style, and personality cannot be modified after creation. Since the name is recorded in memory, changing it would break the connection to past memories. Create a new character if you want different settings.

Character Details

Go to Settings > AI Character > tap a character's name to open the detail screen.

Displayed Information

  • Character Image (manually uploaded / default icon. Can be changed via "Change Image")
  • Name and Type
  • Affinity: 4 hearts (♡♡♡♡ to ❤️❤️❤️❤️) + score (0-100)
  • Inventory: Items owned and a "Give" button

Giving Gifts

Select an item from the inventory and tap "Give" to present it to the character. Giving gifts increases affinity.

Character list screen. Each character shows their name, type, and heart count
Character detail screen. Character image, name, affinity (hearts + score), and inventory are displayed

Shop

Go to Settings > AI Character > "Shop" to open the item purchase screen.

Points

You earn 1 point for each chat message sent. Points are a shared currency across all characters. There are no in-app purchases.

Items

There are 30 items in total across 6 categories (5 per category). Prices range from 10 to 100 points.

CategoryExample ItemsPrice Range
🍴 FoodCookies, Chocolate, Cake ...10-100 pts
✨ AccessoriesRibbon, Bracelet, Necklace ...10-100 pts
🌿 FlowersTulip, Lily, Rose Bouquet ...10-100 pts
☕ DrinksJuice, Coffee, Wine ...10-100 pts
📖 BooksPaperback, Manga, Art Book ...10-100 pts
🎁 SundriesCandle, Music Box, Fountain Pen ...10-100 pts
Shop screen. Point balance at the top, category switching chips, and each item's name, quantity owned, price, and purchase button

Affinity System

Giving items to a character increases their affinity. As affinity grows, the emotional distance in Claude's responses naturally changes.

AffinityHeartsEmotional Distance
0-24♡♡♡♡First meeting. Reserved and business-like responses
25-49❤️♡♡♡Acquaintance. Polite but slightly warmer
50-74❤️❤️♡♡Becoming friends. Shares their own opinions
75-99❤️❤️❤️♡Close friend. Cracks jokes and shows concern
100❤️❤️❤️❤️Deepest bond. Natural and intimate relationship
Favorite Items: Each character has preferred categories. Giving a preferred item grants approximately 1.5x the normal affinity bonus.

Adding a Server

Tap the + button in the top right of the server list screen to add a server.

1

Enter Server Information

Enter the server name, host (IP address), port (usually 22), and username.

2

Select Authentication Method

Private Key (Recommended): Paste a PEM-format private key. If it has a passphrase, enter it as well.
Password: Enter your password. However, keyboard-interactive authentication is not supported, so key-based authentication is recommended.

3

Run Connection Test

Tap the "Test Connection" button. A checkmark appears on success, and the save button becomes active.

4

Save

Tap "Save" in the top right to finish.

Server add screen. Input fields for server name, host, port, username, authentication method selection (private key/password), and a connection test button
Root User Not Allowed: Due to Claude Code's security restrictions, --dangerously-skip-permissions cannot be used with root. Follow the steps below to create a dedicated user.

Creating a Dedicated User

SSH into your server as root from your PC's terminal and run the following commands. (Perform this on your PC, not through Claush.)

1

Create a User

adduser claude

Set a password. Other information (Full Name, etc.) can be skipped by pressing Enter.

2

Grant sudo Privileges

usermod -aG sudo claude

Required for Claude Code to install packages and perform system operations.

3

Set Up SSH Keys

mkdir -p /home/claude/.ssh
cp ~/.ssh/authorized_keys /home/claude/.ssh/
chown -R claude:claude /home/claude/.ssh
chmod 700 /home/claude/.ssh
chmod 600 /home/claude/.ssh/authorized_keys

Copy root's public keys or register a new key pair.

4

Configure Passwordless sudo (Recommended)

echo 'claude ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/claude

If Claude Code is prompted for a password when using sudo, operations will stall. This configuration is recommended.

Once complete, specify claude (the created username) as the username on the Claush server setup screen.

Server Settings

Tap the ⚙️ button on the server list to open the settings screen. It consists of 4 accordion sections.

Server settings screen. Four accordion sections for Server Info, Memory, Claude, and Notifications, each with a blue expand/collapse button on the right
SectionContents
Server InfoBasic settings including host, port, username, and authentication method
MemoryDatabase configuration for conversation memory
ClaudeModel selection, AI character assignment
NotificationsWebhook configuration for Slack/Discord/Teams notifications

Tap the round button on the right side of each section to expand or collapse it. After making changes, tap "Save" in the top right to apply.

Memory Settings

The memory feature lets the AI remember conversation content across sessions. It enables requests like "continue where we left off yesterday."

Database Types

TypeFeaturesRecommended For
NoneMemory feature disabled-
SQLiteStored in a file on the server. No additional setup required.Quick and easy start
PostgreSQLStored in an external database. Supports embedding search.High-precision context retrieval

Setup Steps

1

Select a Database Type

Go to Server Settings > expand the Memory section > select the database type. For PostgreSQL, also enter the connection string.

2

Embedding Settings (PostgreSQL Only, Optional)

Select an embedding provider (OpenAI / Gemini) and enter an API key to enable vector search. You can also select the model.

3

Save for Automatic Setup

Tapping "Save" automatically executes: SSH connection > dependency installation > MCP server deployment > Claude configuration > connection test. Progress for each step is displayed in real time.

Memory settings screen. Database type selection (None/SQLite/PostgreSQL), embedding provider selection, API key input, and setup progress steps
Note: Changing the database type or embedding provider may reset existing memory data. A confirmation dialog will be displayed when making changes.

Claude Settings

Model Selection

Select the Claude model to use. Each model differs in performance, speed, and cost. The currently selected model is indicated with a checkmark.

Sensitive File Access

Use the toggle to control AI access to sensitive files such as .env. The default is OFF (access denied).

Caution: Turning this option ON allows the AI to read sensitive files like .env, credentials.json, etc. Only enable this in trusted environments.

AI Character Assignment

If custom characters have been created, you can select which character to assign to this server. Once assigned, Claude will respond in that character's speech style and personality.

Notification Settings

Get notified when Claude finishes responding via external services. This lets you switch to other tasks while long-running operations are in progress.

Supported Platforms

You need to obtain a Webhook URL from each service beforehand.

PlatformHow to Get the Webhook URL (set up on each service)
SlackSlack App Settings > Incoming Webhooks > Add New Webhook to get the URL
DiscordDiscord Server Settings > Integrations > Webhooks > New Webhook to get the URL
Microsoft TeamsTeams Channel > Connectors > Incoming Webhook to get the URL
1

Select a Platform

Choose from Slack / Discord / Microsoft Teams.

2

Enter the Webhook URL

Paste the Webhook URL issued by the selected platform.

3

Save

Tapping "Save" automatically deploys the notification server and sends a test notification.

Notification settings screen. Platform selection (Slack/Discord/Teams) and Webhook URL input field

Session Basics

Tapping the chat button connects to the server and opens a screen with three tabs.

Three-Tab Layout

TabDescription
ChatDisplays Claude's responses as chat bubbles. This is the tab you'll normally use.
TerminalA raw shell. Useful for checking files and running commands.
ClaudeThe raw Claude Code TUI screen. View details of tool execution in progress.

Switching Tabs

Tap the button in the top right to expand the tab picker. Select Chat / Terminal / Claude to switch tabs.

Tap the server icon to the left of the tabs to return to the server list. The tmux session on the server continues running in the background, so you can resume your work by reconnecting.

Tab picker expanded. The top right shows a button to return to server list and a Chat|Terminal|Claude segmented control displayed side by side

Connection Status

Check the connection state via the indicator in the top left.

DisplayStatus
🟢 Green dotConnected. Claude is ready for input
⏳ + "Setting up"Installing dependencies
⏳ + "Claude"Starting Claude Code
⏳ + "tmux"Connecting to tmux session
⏳ + "Reconnecting" (orange)Connection lost, reconnecting
⚪ Gray dotDisconnected
❌ Red markError

Chat Tab

This is the main screen of Claush. Send a message and Claude Code responds, displayed as chat bubbles.

Chat screen. User's blue bubbles and Claude's gray bubbles alternate, with code blocks featuring syntax highlighting and copy buttons

Sending Messages

Enter a message in the input field at the bottom of the screen and tap the send button on the right. An animated indicator appears while Claude is processing.

Voice Input: When the input field is empty, tap the microphone button to enter a message using speech recognition.

Message Display

  • User Messages: Right-aligned blue bubbles
  • Claude's Responses: Left-aligned gray bubbles (with avatar when an AI character is set)
  • Markdown Support: Code blocks include syntax highlighting and copy buttons

Attachment Menu

Tap the menu button on the left of the input field to display the following options.

OptionFunction
Select FileUpload a file from your device
Select PhotoUpload an image from the photo library
Download FileDownload a file from the server
Clear Chat LogDelete all chat history

Past Messages

Scroll to the top of the chat and a "Load earlier messages" button appears. Tapping it loads past messages in batches of 30.

Terminal Tab

A full terminal emulator providing raw shell access. Use it for checking files, Git operations, running commands, and more.

Terminal screen. Command output on a black background, with a special key bar at the bottom featuring Tab, Ctrl+C, arrow keys, and more

Special Key Bar

Control characters that are difficult to type on the standard iOS keyboard can be entered with a single tap from the key bar at the bottom of the screen.

KeyPurpose
TabCommand completion
Ctrl+CInterrupt the running command
Ctrl+DEnd of input (EOF)
Ctrl+ZSuspend the process
EscMode switching in vim, etc.
↑ ↓ ← →Cursor movement / command history

Claude Tab

Displays the Claude Code TUI (Text User Interface) as-is. You can see tool execution details and thinking processes in real time that are omitted in the Chat tab.

When to Use: Useful when Claude is running long tasks (builds, bulk file operations, etc.) and you want to see what's happening right now.

You can also type directly in the Claude tab, so you can manually run Claude Code slash commands (/clear, /cost, etc.).

Claude tab. The Claude Code TUI screen is displayed as-is, showing tool execution and thinking details

File Transfer

Upload

From the chat attachment menu, tap "Select File" or "Select Photo" to choose a file. The file is uploaded to ~/claush-uploads/ on the server, and Claude is notified accordingly.

1

Select a File from the Menu

Attachment menu > "Select File" or "Select Photo"

2

Upload Complete

An indicator is displayed during upload. Once complete, a notification message is sent in the chat.

3

Give Instructions to Claude

Tell Claude something like "Create a UI based on the uploaded image" and it will reference the file to work.

Upload menu. Options for Select File and Select Photo displayed from the attachment button
Upload complete. A file upload completion notification message displayed in the chat

Download

Tap "Download File" in the attachment menu to see a list of files in the server's ~/claush-downloads/ directory. Tap a file to download it to your iPhone, and a share sheet will appear.

Download screen. A file list from the server's ~/claush-downloads/ directory
Download complete. A share sheet is displayed, allowing you to send the file to other apps or save it
Tip: Tell Claude "Copy the generated file to ~/claush-downloads/" and it will place the file in a downloadable location for you.

Tips & Tricks

Break Work into Small Pieces

Keep each instruction to a single user story. This makes it easier to review on a phone screen. You can verify at the PR level, maintaining quality while developing at a good pace.

Check Progress in the Claude Tab

During long-running tasks, switch to the Claude tab to see what's happening in real time. Switch back to the Chat tab to see the results as chat bubbles.

Use Notifications for Async Work

With notifications configured, Claude's response completions arrive on Slack or Discord. This enables an asynchronous development style: send an instruction, close the app, and do something else.

Carry Context Forward with Memory

With the memory feature enabled, the AI remembers the contents of previous sessions. You can enjoy a natural development experience with requests like "continue from yesterday" or "that thing we discussed before."

Work Continues in the Background

Thanks to tmux session management, server-side work continues even after you close the app. The results are automatically retrieved the next time you open the app.

Troubleshooting

Cannot Connect

  • Verify that the host, port, and username are correct
  • Make sure the private key is copied exactly from -----BEGIN OPENSSH PRIVATE KEY----- to -----END OPENSSH PRIVATE KEY-----, including line breaks
  • Root user connections are not supported. Create a dedicated user
  • Keyboard-interactive authentication is not supported. Use key-based authentication

Claude Code Won't Start

  • Verify that claude login has been completed on the server. You can run this from the Terminal tab
  • Verify that the user has sudo privileges (without password). This is required for automatic installation

No Response

  • Switch to the Claude tab to check the Claude Code TUI status
  • If the connection status in the top left shows "Reconnecting," check your network connection
  • If there's still no response after a long time, check directly from the Claude tab or return to the server list and reconnect

Memory Setup Fails

  • For PostgreSQL, verify the connection string starts with postgresql:// or postgres://
  • Verify that Node.js is installed on the server (it is usually installed automatically)
  • Verify that sudo can be run without a password

Character Storage

Character definitions are stored on your iPhone (in-app storage). When switching devices, restore from an iPhone backup.