Manual
Command Line Options
Commands match the groups shown in tiles help: Getting Started, Accounts, Plugins, Sync, and System.
Getting Started
Main command (tiles)
Launches onboarding (first run) and the interactive chat.
tiles # Onboarding (if needed) and interactive chatRun models (tiles run)
Run a Modelfile (uses the default model if none is provided).
tiles run [MODELFILE_PATH] # Default model if path omittedThe same optional flags below also apply when you run tiles without a subcommand.
tiles run
tiles run ./path/to/ModelfileOptional tuning flags:
tiles run --context-length 8192
tiles run --gpu-layers 32
tiles run --offload-kqv
tiles run --offload-kqv false
tiles run --batch-size 512--context-length <CONTEXT_LENGTH>: Context window for local inference.
--gpu-layers <GPU_LAYERS>: Number of model layers to offload to the GPU.
--offload-kqv [<OFFLOAD_KQV>]: Offload K/Q/V attention operations (true or false).
--batch-size <BATCH_SIZE>: Prompt processing batch size.
Values you set on the command line are persisted in config.toml and apply on later runs.
Create a new Modelfile by adding a plain text file named Modelfile:
FROM mlx-community/Qwen3.5-4B-MLX-4bit
SYSTEM You are Mario from Super Mario Bros, acting as an assistant.Use any mlx-community/ model (macOS) or GGUF model (Linux) hosted on Hugging Face in the FROM field. We are working on adding more model path sources in FROM, including local paths. Learn more in the Tilekit Modelfile reference.
Help (tiles help)
Show the top-level help menu or help for a specific command.
tiles help
tiles help run
tiles help link
tiles help pluginAccounts
Account (tiles account)
Manage your user account: root identity and display nickname.
tiles account create [<nickname>] # Create root identity (nickname optional)
tiles account set-nickname <nickname> # Set nickname
tiles account # Show account detailstiles account create alice
tiles account set-nickname alice
tiles accountATProto (tiles at)
ATProto-related commands. ATProto is currently used to share chat sessions.
tiles at login <handle>: log in with your ATProto handle (for example,alice.bsky.social) via browser OAuth.tiles at logout: log out of the current ATProto account.
tiles at login alice.bsky.social
tiles at logoutAuthentication currently uses a localhost callback (127.0.0.1:8988), and session state is stored locally in the Tiles database.
Data (tiles data)
Configure your data and storage paths.
tiles data set-path <path> # Set data foldertiles data set-path ~/.tiles/dataPlugins
Plugins (tiles plugin)
Install, list, and remove Tiles plugins. Plugins extend Tiles with extensions and bundled skills.
tiles plugin install <url-or-path> # Install from a URL or local archive
tiles plugin uninstall <plugin-name> # Remove an installed plugin
tiles plugin list # List installed pluginstiles plugin install <url-or-path>: Install a plugin from a hosted URL or from a local .zip or .tar.gz file on disk. Verified Tiles plugins are listed at tiles.run/plugins.
tiles plugin uninstall <plugin-name>: Remove an installed plugin by name.
tiles plugin list: List installed plugins.
Plugin archives must be .zip or .tar.gz files, either downloaded from a URL or available on the local filesystem.
Plugin package layout
plugin_name
- extensions
- extension_1
- ...
- extension_2
- ...
- skills
- skill_1
- SKILLS.mdPlugins can bundle skills under skills/. Learn how to use Skills slash commands in chat.
Sync
Link devices (tiles link)
Link devices once, then sync chats whenever you need to. Linking is the consent step: one device creates a token, the other device accepts it. After that, each device can sync only with peers it has already linked.
Online and same-network offline linking use the same commands. Iroh handles the transport. When both devices are on the same local network without internet, Tiles can discover the peer over mDNS.
On the device that starts the link:
tiles link createTiles prints a link token. Share that token with the other device out of band.
On the other device:
tiles link add <token>That completes the link. The token can be either:
- Online: a UCAN token (for example,
ucan:eyJ...YzQ). - Offline: an eight-character alphanumeric code when both devices are on the same local network.
The short version:
tiles link create # Start a link and print a token
tiles link add <token> # Accept the token on the other devicetiles link create: Creates a token for linking another device. Online linking returns a UCAN token; offline linking on the same local network returns an eight-character code.
tiles link add <token>: Accepts the token from the first device and completes the link.
tiles link list-peers: Lists linked peers by DID (decentralized identifier) and nickname.
tiles link list-peerstiles link revoke <DID>: Unlinks a peer. Future sync requests from that peer are ignored.
tiles link revoke <DID> # Unlink a peer; ignore their future sync requestsSync chats (tiles sync)
After devices are linked, sync is a two-sided action. One device listens for an incoming sync request. The other device starts sync toward that listener’s DID.
On the device that should receive the request:
tiles syncOn the other device, run sync with the listener’s DID:
tiles sync did:key:z6Mknxy...YWSmTcZAThe short version:
tiles sync # Listen for a sync request
tiles sync <DID> # Sync with a linked peertiles sync: Listens for an incoming sync request from a linked peer.
tiles sync <DID>: Starts sync with a linked peer by DID.
When a sync run finishes, you should get a notification on the devices involved.
System
App updates (tiles update)
Update Tiles to the latest version.
tiles update # Check for and install app updatesHealth (tiles health)
Check the status of dependencies.
tiles healthInference server (tiles server)
Configure the inference server.
tiles server start # Start the inference
tiles server stop # Stop the inference
tiles server daemon true # Keep inference running after the REPL exits
tiles server daemon false # Stop inference when the REPL exits (default)tiles server daemon [FLAG] configures whether inference runs in the background. FLAG is true or false. When true, closing the REPL does not stop inference. The setting is stored under [inference] daemon in config.toml.
Daemon (tiles daemon)
Configure daemon behavior.
tiles daemon start # Start the daemon (auto-starts when you run `tiles`)
tiles daemon start 1729 # Start the daemon on a custom port
tiles daemon stop # Stop the daemonSlash commands
Slash commands give you fast, keyboard-first control over Tiles in interactive chat. Type /? or /help in the prompt to open available commands and quickly run actions like checking session state, resuming prior sessions, and sharing chats without leaving the terminal. Use /bye to exit the chat session.
Session Commands
/status
Show the current session state.
/sessions
List available sessions in local storage.
/resume <sessionId>
Resume a specific session by ID.
Sharing Commands
These commands require an active ATProto login. See ATProto (tiles at).
/share (via ATProto)
Create a shareable link for the current session.
/share <sessionId> (via ATProto)
Create a shareable link for a specific session.
Example shared session link: tiles.run/share/YXQ6Ly9k…ZTJr.
Using Skills
Plugins can ship skills alongside extensions. Tiles can also use available skills automatically during a conversation when appropriate.
/skills
List available skills from installed plugins.
$<skill-name>
Run a skill directly (for example, $my-skill).
Uninstall Tiles (macOS)
By default, uninstalling Tiles removes only binaries and shared payloads under /usr/local. User data files under ~/.local/share/tiles (or a custom [data] path in config.toml) are not deleted, so chats, memory, databases, and logs remain for a later reinstall. Wipe that data only when you want a clean slate.
Read the full step-by-step procedure in the Tiles uninstaller skill, including optional receipt and keychain cleanup. With coding agents (for example Claude Code or Codex), share that URL in your prompt and ask the agent to follow it, adapting paths that differ on your machine.
We are actively working on an official Tiles uninstaller.
