Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Copilot Chat App

Languages: English (below) | 日本語

A minimal mobile/desktop chat client for the GitHub Copilot CLI, running on Windows, macOS, and iOS.

⚠ This is a full agent client, not a plain chat client. The server runs the Copilot CLI with --allow-all-tools --allow-all-paths --allow-all-urls, so every message you send can result in file edits, shell command execution, or web/MCP tool access on the machine running the server (scoped to WORK_DIR). Only share your Server URL and Auth Token with people/devices you trust as much as you'd trust someone with shell access to that machine. See USAGE.md for details.

Since the GitHub Copilot CLI (copilot) is a Node.js tool, it can't run natively inside an iOS app. This project uses a server/client architecture instead:

┌─────────────────────────┐        WebSocket (wss/ws + Bearer token)        ┌──────────────────────────┐
│  .NET MAUI client app    │  ───────────────────────────────────────────▶  │  Node.js chat server      │
│  (Windows / macOS / iOS) │  ◀───────────────────────────────────────────  │  (runs on your PC/Mac,     │
│  server/CopilotChatApp   │        streamed chat replies                   │  wraps the `copilot` CLI)  │
└─────────────────────────┘                                                 └──────────────────────────┘
  • server/ — a small Node.js/TypeScript WebSocket server that runs copilot -p "<message>" --allow-all-tools --allow-all-paths --allow-all-urls -C <WORK_DIR> --output-format json -s --session-id=<id> per chat turn (full agent mode: file edits, shell commands, and MCP tools are all pre-approved and confined to WORK_DIR), and streams the reply back over WebSocket. Reusing the same --session-id across turns resumes the same Copilot session, so conversations keep context.
  • client/CopilotChatApp/ — a .NET MAUI app (single codebase) with a chat UI and a Settings page to configure one or more server profiles (name/URL/auth token each — see Multi-server support below). Targets net10.0-windows10.0.19041.0, net10.0-maccatalyst, and net10.0-ios.

1. Run the server

Prerequisites: Node.js 20.19+ (or 22.12+), and the GitHub Copilot CLI installed & logged in (copilot login) on the machine that will run the server.

cd server
npm ci
copy .env.example .env   # edit AUTH_TOKEN to a long random secret
npm run build
npm start

The server listens on ws://0.0.0.0:5219 (configurable via PORT in .env), meaning it accepts connections on all network interfaces. Clients must NOT use 0.0.0.0 as the address — that's only a server bind address. Instead, in the app's Settings, use:

  • Same machine as the server → ws://localhost:5219
  • Another device (e.g. iPhone) on the same LAN → the server machine's actual LAN IP, e.g. ws://192.168.1.10:5219

Make sure this port is reachable from your other devices (open the firewall / router port as needed), or run it on the same LAN.

Client apps must send Authorization: Bearer <AUTH_TOKEN> on connect — configure the same token in the app's Settings page.

To have the server start automatically at login and restart itself if it crashes (rather than only running in a terminal you keep open), see USAGE.md's "Running the server persistently" section — scripts/install-server-startup-windows.ps1 (Scheduled Task) and scripts/install-server-startup-mac.sh (LaunchAgent), no admin rights needed. On macOS, scripts/build-mac.sh automatically restarts an installed LaunchAgent after a successful server build, so it immediately loads the new server/dist. After an .env-only change, use scripts/restart-server-mac.sh. On Windows, apply rebuilt code or configuration changes with scripts/restart-server-windows.ps1.

2. Run/build the client

cd client/CopilotChatApp
dotnet build -f net10.0-windows10.0.19041.0   # Windows
dotnet build -f net10.0-maccatalyst           # macOS (must be built/run on a Mac with Xcode)
dotnet build -f net10.0-ios                   # iOS (must be built/run on a Mac with Xcode + signing)
  • Windows: dotnet build/dotnet run works directly on Windows (verified in this repo).
  • macOS / iOS: Apple platform builds require Xcode and must be built on a Mac (MAUI's iOS/Mac Catalyst toolchain needs the Apple SDKs). Open CopilotChatApp.csproj in Visual Studio (Windows, with "Pair to Mac") or in Visual Studio / dotnet build directly on a Mac to produce the .app/.ipa.
  • iOS on a physical device needs more than just dotnet build — a provisioning profile, a signing identity, and a USB-connected device with Developer Mode on. See USAGE.md for the full step-by-step flow (a free Apple ID "Personal Team" is enough, no paid Apple Developer Program required). That free profile expires after about a week — keep the one-time dummy Xcode project you make around (don't delete it) so renewing later is just "reopen it, press ▶ again", and see USAGE.md's renewal walkthrough for the full recovery steps (including a sudo-gated profile copy and a stale-profile gotcha that can otherwise cause a confusing "This provisioning profile cannot be installed on this device" error).

Quick build scripts

scripts/ has one-shot build scripts that install server dependencies, build the server, and build the client for that platform:

# Windows (PowerShell)
./scripts/build-windows.ps1          # build only
./scripts/build-windows.ps1 -Run     # build, then start the server + run the client
./scripts/build-windows.ps1 -Package # build a standalone, self-contained folder instead (no installer/MSIX)
# macOS
./scripts/build-mac.sh               # build only
./scripts/build-mac.sh --run          # build, then start the server + run the client
./scripts/build-mac.sh --package      # build a distributable .pkg installer instead
# iOS physical device (Release by default; requires signing/provisioning first)
./scripts/deploy-ipad.sh --run                 # auto-detect a USB-connected iPad
./scripts/deploy-ipad.sh --iphone --run        # auto-detect a USB-connected iPhone
./scripts/deploy-ipad.sh --clean --debug --run # clean Debug build, install, and launch

On first launch, open Settings and add a server:

  • Name: any label for this server, e.g. "My Mac mini"
  • Server URL: e.g. ws://192.168.1.10:5219 (the IP/hostname of the machine running the server)
  • Auth Token: same value as AUTH_TOKEN in that server's server/.env

Tap Save, then go back and start chatting. Add more servers the same way (see Multi-server support below) - the Home screen aggregates sessions from every server you've added. Use New chat in the toolbar to start a fresh Copilot CLI session (it'll ask which server, if you've configured more than one). The model picker above the chat composer applies to subsequent turns on that chat page. Leave Server default selected to use COPILOT_MODEL (and the CLI default when that is unset). The selection is not persisted.

Features

  • Streaming chat with the Copilot CLI, running in full agent mode (file edits, shell commands, MCP tools).
  • Per-chat model selection: the chat composer loads the signed-in account's current models from the official Copilot SDK. Change models between turns without changing server settings. Model IDs are never hardcoded or inferred from documentation.
  • Multi-session orchestration: open an existing session as an Orchestrator, or start a new chat with Orchestrator mode enabled. Talk only to the Conductor while it creates or reuses read-only Player sessions, including Players on configured peer servers. Main and child views follow new activity automatically until you scroll away to inspect older output.
  • Multi-server support: add multiple server profiles in Settings (e.g. one per PC/Mac you run the server on). The Home screen connects to every configured server in parallel and shows all their sessions together, each tagged with an OS glyph + server name. Tap a server's name in the summary chip at the top to filter the list down to just that server; tap it again to show everything.
  • Session management: rename (label) any session, archive/unarchive it (with a switch to show archived ones), and search across every configured server at once - both session titles AND the actual conversation content, not just the CLI's auto-generated title.
  • In-chat find: search within the conversation you're currently viewing (🔍 in the chat toolbar), with prev/next buttons, a match counter, and a highlighted bubble for the current match.
  • Selectable message text: tap 🔎 テキスト遞択 under a message to open its Markdown source in a read-only selectable view, with a Copy All command. This works in regular chats and both Conductor/Player panes, and follows the configured chat font size.
  • Image attachments: paste an image from the system clipboard (Mac Catalyst and iOS) and send it along with your message; the server writes it to a temp file and passes it to the CLI via --attachment.
  • Folder / git-clone picker for new chats: start a new conversation rooted at a specific folder (within the server's configured BROWSE_ROOTS) or clone a git repo fresh, instead of always using the default workspace.
  • In-app MCP server management: add/remove stdio or http MCP servers from the Manage MCP Servers screen in Settings — no need to SSH into the server machine to run copilot mcp add.
  • Biometric/passcode lock: on iOS/iPadOS, Mac Catalyst, and Windows, the app can require Face ID / Touch ID / Windows Hello (or device passcode) to unlock after being backgrounded, protecting the saved Auth Token(s).
  • Adjustable chat font size, from the Settings page - applies immediately, even to already-visible messages.
  • (Experimental) Push notification when Copilot replies: set NTFY_TOPIC in server/.env to get a push notification via ntfy whenever a chat turn finishes - useful since real Apple/Google push would otherwise require this app to have its own paid developer account credentials. See USAGE.md for setup.

Multi-server support

Each server you run (potentially on a different PC/Mac) is a separate, independent profile in Settings - name, URL, and its own auth token. This follows a "federated" design: every server is the sole owner of its own sessions (nothing is synced or merged server-side), and the client just fans out read-only requests (list/search sessions) to every configured profile in parallel and merges the results for display.

  • Add a server: Settings → "+ Add new server" → fill in Name/Server URL/Auth Token → Save. Saving switches the active profile to whichever one you just edited (used for actions like New Chat when only one server is configured).
  • Switch servers: tap any profile row in Settings to make it active (the ✓ and highlighted border move to it), or just tap a session on the Home screen - opening it automatically switches to that session's server.
  • Remove a server: tap "削陀"/"Delete" on its row in Settings. This only removes it from this app's configuration; the server itself and its session history are untouched.
  • The Home screen fetches every configured server in parallel and shows each one's sessions as soon as they're back, rather than waiting for the slowest one - a server still being connected to shows a "⋯" chip, a reachable one shows its OS glyph (tap to filter the list to just that server), and one that couldn't be reached in time shows a grayed-out "⚠" instead of silently disappearing. Tap the 🔄 toolbar button to retry all servers again, e.g. after bringing a previously-down one back up.

Notes / limitations

  • Local network / non-TLS ws:// access is explicitly allowed for iOS and Mac Catalyst via Info.plist (NSAppTransportSecurity + NSLocalNetworkUsageDescription). For access over the internet, prefer running the server behind a reverse proxy with TLS and using wss://.
  • The server runs the Copilot CLI in full agent mode (--allow-all-tools --allow-all-paths --allow-all-urls): it will edit files, run shell commands, and access the web/MCP tools, all confined to the WORK_DIR folder (see USAGE.md for the full list of implications). This is not a sandboxed, tool-free chat client.
  • Conversations are keyed by a per-profile conversation id (stored in app Preferences, one per configured server) mapped 1:1 to a Copilot CLI --session-id on that server; each server currently keeps this mapping in memory only (restarting a server starts a fresh Copilot session for that profile's "current" chat, though the CLI's own session history is still resumable via copilot --resume independently of this app, and from the app's own Home screen).
  • On iOS, connecting to the server for the first time after a fresh install triggers the OS's local-network-access permission prompt. The app retries connecting for a while and keeps retrying in the background if that first attempt fails — if you see a connection error right after granting that permission, just wait a few seconds and try again.

日本語

GitHub Copilot CLI を䜿ったチャットクラむアントです。Windows・macOS・iOS で動きたす。

⚠ これは玠のチャットクラむアントではなく、フル゚ヌゞェントクラむアントです。 サヌバヌは Copilot CLI を --allow-all-tools --allow-all-paths --allow-all-urls 付きで実行するため、送信したメッセヌゞによっお サヌバヌを動かしおいるマシン䞊(WORK_DIR の範囲内)でファむル線集・シェルコマンド実行・Web/MCPツヌル アクセスが行われるこずがありたす。Server URL ず Auth Token は、そのマシンのシェルアクセス暩を枡しおも 良いず思える盞手/端末にだけ教えおください。詳现は USAGE.md を参照しおください。

GitHub Copilot CLI (copilot) は Node.js 補のツヌルなので、iOSアプリの䞭でそのたた動かすこずはできたせん。 そのため、このプロゞェクトは サヌバヌ/クラむアント構成 を採甚しおいたす:

┌─────────────────────────┐        WebSocket (wss/ws + Bearer token)        ┌──────────────────────────┐
│  .NET MAUI クラむアント   │  ───────────────────────────────────────────▶  │  Node.js チャットサヌバヌ   │
│  (Windows / macOS / iOS) │  ◀───────────────────────────────────────────  │  (PC/Macで起動し、          │
│  server/CopilotChatApp   │        ストリヌミングで返信                     │  `copilot` CLIをラップ)     │
└─────────────────────────┘                                                 └──────────────────────────┘
  • server/ — Node.js/TypeScript補の小さなWebSocketサヌバヌ。チャット1タヌンごずに copilot -p "<message>" --allow-all-tools --allow-all-paths --allow-all-urls -C <WORK_DIR> --output-format json -s --session-id=<id> を実行し(ファむル線集・シェルコマンド・MCPツヌルが党お事前承認枈みのフル゚ヌゞェントモヌドで、 WORK_DIR 内に限定)、返信をWebSocket経由でストリヌミングしたす。同じ --session-id を䜿い続けるこずで 同䞀のCopilotセッションが再開され、䌚話の文脈が維持されたす。
  • client/CopilotChatApp/ — .NET MAUI補アプリ(単䞀コヌドベヌス)。チャットUIず、 耇数のサヌバヌプロファむル(名前/URL/認蚌トヌクンをそれぞれ蚭定、䞋蚘「マルチサヌバヌ察応に぀いお」参照)を 管理するSettings画面を持ちたす。察象は net10.0-windows10.0.19041.0、net10.0-maccatalyst、net10.0-ios です。

1. サヌバヌを起動する

前提条件: Node.js 20.19以䞊(たたは22.12以䞊)、サヌバヌを動かすマシンに GitHub Copilot CLI が むンストヌル・ログむン枈み(copilot login)であるこず。

cd server
npm ci
copy .env.example .env   # AUTH_TOKEN を長いランダムな秘密文字列に線集する
npm run build
npm start

サヌバヌは ws://0.0.0.0:5219(.env の PORT で倉曎可)で埅ち受けたす。これは党ネットワヌク むンタヌフェヌスからの接続を受け付けるずいう意味です。クラむアント偎では 0.0.0.0 をアドレスずしお 䜿わないでください — あれはサヌバヌのバむンド甚アドレスに過ぎたせん。アプリのSettingsでは:

  • サヌバヌず同じマシン → ws://localhost:5219
  • 同じLAN䞊の別端末(iPhoneなど) → サヌバヌマシンの実際のLAN IP、䟋: ws://192.168.1.10:5219

このポヌトが他の端末から到達可胜であるこず(必芁に応じおファむアりォヌル/ルヌタヌのポヌトを開攟)、 たたは同じLAN内で動かすようにしおください。

クラむアントは接続時に Authorization: Bearer <AUTH_TOKEN> を送る必芁がありたす — アプリのSettings画面で 同じトヌクンを蚭定しおください。

サヌバヌをログむン時に自動起動させ、クラッシュしおも自動再起動させたい堎合(タヌミナルを開きっぱなしに する必芁をなくしたい堎合)は、USAGE.mdの「サヌバヌを垞時起動しおおく」セクション を参照しおください — scripts/install-server-startup-windows.ps1(Scheduled Task)ず scripts/install-server-startup-mac.sh(LaunchAgent)、どちらも管理者暩限は䞍芁です。 macOSでは、scripts/build-mac.shがサヌバヌビルド成功埌にむンストヌル枈みLaunchAgentを自動再起動し、 新しいserver/distを即座に読み蟌みたす。.envだけを倉曎した堎合はscripts/restart-server-mac.shを 䜿っおください。Windowsで再ビルド埌のコヌドや蚭定倉曎を反映する堎合は scripts/restart-server-windows.ps1を䜿いたす。

2. クラむアントを実行/ビルドする

cd client/CopilotChatApp
dotnet build -f net10.0-windows10.0.19041.0   # Windows
dotnet build -f net10.0-maccatalyst           # macOS(Xcode入りのMacでビルド/実行する必芁あり)
dotnet build -f net10.0-ios                   # iOS(Xcode+眲名蚭定入りのMacでビルド/実行する必芁あり)
  • Windows: dotnet build/dotnet run がWindows䞊でそのたた動䜜したす(このリポゞトリで確認枈み)。
  • macOS / iOS: Appleプラットフォヌム向けビルドにはXcodeが必芁で、Mac䞊でビルドする必芁がありたす (MAUIのiOS/Mac CatalystツヌルチェむンはApple SDKを必芁ずしたす)。Visual Studio(Windows、 「Macずペア蚭定」䜿甚)で CopilotChatApp.csproj を開くか、Mac䞊で盎接 Visual Studio / dotnet build を䜿っお .app/.ipa を生成しおください。
  • iOS実機デプロむは dotnet build だけでは完結したせん — プロビゞョニングプロファむル・眲名ID・ USB接続+デベロッパモヌド有効化が必芁です。詳しい手順は USAGE.md を参照しおください (無料のApple ID「Personal Team」で十分で、有償のApple Developer Programは䞍芁です)。 この無料プロファむルは玄1週間で倱効したす — 䞀床䜜ったダミヌのXcodeプロゞェクトは削陀せずに残しお おけば、曎新時は「それを再床開いお▶を抌すだけ」で枈みたす。詳しい埩旧手順(sudoが必芁な プロファむルのコピヌや、「This provisioning profile cannot be installed on this device」ずいう玛らわしい ゚ラヌの原因になる期限切れプロファむルの削陀など)は USAGE.mdの曎新手順を参照しおください。

簡単ビルドスクリプト

scripts/ に、サヌバヌの䟝存関係むンストヌル・ビルド・各プラットフォヌムのクラむアントビルドを 䞀括で行うスクリプトがありたす:

# Windows (PowerShell)
./scripts/build-windows.ps1          # ビルドのみ
./scripts/build-windows.ps1 -Run     # ビルド埌、サヌバヌ起動+クラむアント実行たで行う
./scripts/build-windows.ps1 -Package # 代わりに単䜓で動く自己完結フォルダを生成(むンストヌラヌ/MSIXなし)
# macOS
./scripts/build-mac.sh               # ビルドのみ
./scripts/build-mac.sh --run          # ビルド埌、サヌバヌ起動+クラむアント実行たで行う
./scripts/build-mac.sh --package      # 代わりに配垃可胜な.pkgむンストヌラヌを生成
# iOS実機(既定はRelease。事前に眲名/プロビゞョニング蚭定が必芁)
./scripts/deploy-ipad.sh --run                 # USB接続䞭のiPadを自動怜出
./scripts/deploy-ipad.sh --iphone --run        # USB接続䞭のiPhoneを自動怜出
./scripts/deploy-ipad.sh --clean --debug --run # クリヌンDebugビルド埌にむンストヌル・起動

初回起動時は、アプリの Settings を開いおサヌバヌを远加したす:

  • Name: このサヌバヌに付ける奜きな名前、䟋: 「自宅のMac mini」
  • Server URL: 䟋 ws://192.168.1.10:5219(サヌバヌを動かしおいるマシンのIP/ホスト名)
  • Auth Token: そのサヌバヌの server/.env の AUTH_TOKEN ず同じ倀

Save を抌すず保存されたす。戻っおチャットを開始しおください。他のサヌバヌも同じ手順で远加できたす (䞋蚘の「マルチサヌバヌ察応」参照) — Home画面は远加した党サヌバヌのセッションをたずめお衚瀺したす。 ツヌルバヌの New chat で新しいCopilot CLIセッションを開始できたす(サヌバヌを耇数登録しおいれば、 どのサヌバヌで始めるか聞かれたす)。 チャット入力欄の䞊にあるモデルPickerは、そのチャット画面で以降に送るturnぞ適甚されたす。 Server default のたたなら COPILOT_MODEL、それも未蚭定ならCLIのデフォルトが䜿われたす。 遞択は保存されたせん。

機胜

  • Copilot CLI ずのストリヌミングチャット(フル゚ヌゞェントモヌド: ファむル線集・シェルコマンド・MCPツヌル)
  • チャットごずのモデル遞択: チャット入力欄で、ログむン䞭アカりントの最新モデル䞀芧を公匏Copilot SDKから 読み蟌み、サヌバヌ蚭定を倉曎せずturn間でモデルを切り替えられたす。モデルIDをハヌドコヌドしたり、 ドキュメントの衚瀺名から掚枬したりしたせん。
  • マルチセッション・オヌケストレヌション: 既存セッションをOrchestratorで開くか、新芏チャットで Orchestratorモヌドを有効にしお開始できたす。人間はConductorずのみ䌚話し、Conductorが読み取り専甚の Playerセッションを䜜成・再利甚したす。蚭定枈みピアサヌバヌ䞊のPlayerも利甚できたす。メむン/子画面は、 過去ログを芋るために手動で䞊ぞスクロヌルするたでは最新の凊理ぞ自動远埓したす。
  • マルチサヌバヌ察応: Settingsで耇数のサヌバヌプロファむルを远加できたす(動かしおいるPC/Macごずに1぀)。 Home画面は蚭定枈みの党サヌバヌに䞊行接続し、それぞれのセッションをOSアむコン+サヌバヌ名付きでたずめお 衚瀺したす。䞊郚のサマリヌチップでサヌバヌ名をタップするず、そのサヌバヌだけにフィルタできたす (もう䞀床タップで解陀)。
  • セッション管理: 各セッションにラベル(衚瀺名)を付けたり、アヌカむブ/アヌカむブ解陀したり (アヌカむブ枈みを衚瀺するスむッチもあり)、蚭定枈みの党サヌバヌを暪断しお怜玢できたす — CLIが自動生成したタむトルだけでなく、䌚話の実際の内容も怜玢察象です。
  • 䌚話内怜玢: 今開いおいる䌚話の䞭を怜玢できたす(チャット画面ツヌルバヌの🔍)。前埌移動ボタン・ 䞀臎件数・珟圚の䞀臎箇所のハむラむト付き。
  • メッセヌゞ本文の遞択: メッセヌゞ䞋の🔎 テキスト遞択をタップするず、Markdown゜ヌスを読み取り専甚の 遞択可胜画面で開き、郚分遞択たたはCopy Allできたす。通垞チャットずConductor/Playerの䞡ペむンで䜿え、 Settingsのチャットフォントサむズにも連動したす。
  • 画像添付: システムクリップボヌドから画像を貌り付けお(Mac Catalyst / iOS)メッセヌゞず䞀緒に送信。 サヌバヌが䞀時ファむルに曞き出し、CLIの --attachment に枡したす
  • 新芏チャット時のフォルダ遞択/Git clone: 垞にデフォルトのworkspaceを䜿うのではなく、サヌバヌの BROWSE_ROOTS 配䞋の特定フォルダを起点にしたり、Gitリポゞトリを新芏cloneしお䌚話を始められたす。
  • アプリ内MCPサヌバヌ管理: Settingsの Manage MCP Servers 画面から stdio/http のMCPサヌバヌを 远加・削陀できたす — サヌバヌマシンにSSHしお copilot mcp add を叩く必芁はありたせん
  • 生䜓認蚌/パスコヌドロック: iOS/iPadOS・Mac Catalyst・Windowsでは、バックグラりンドから埩垰する際に Face ID / Touch ID / Windows Hello(たたはデバむスのパスコヌド)でのロック解陀を芁求し、 保存枈みのAuth Token(耇数サヌバヌ分)を保護できたす
  • Settings画面からチャットのフォントサむズを調敎可胜(既に衚瀺䞭のメッセヌゞにも即座に反映されたす)
  • (実隓的機胜) Copilotが返信したらプッシュ通知: server/.env に NTFY_TOPIC を蚭定するず、 チャットの返信が完了するたびにntfy経由でプッシュ通知が届きたす。本物のApple/Google プッシュを自前で実装するには有償のデベロッパヌアカりントが必芁になるずころを回避できたす。 セットアップ方法はUSAGE.mdを参照しおください。

マルチサヌバヌ察応に぀いお

動かしおいるサヌバヌ(別々のPC/Macにある堎合も含む)はそれぞれ、Settings内で独立したプロファむル (名前・URL・専甚の認蚌トヌクン)ずしお管理されたす。「連合(Federated)」方匏を採甚しおおり、 各サヌバヌは自分のセッションの唯䞀の所有者です(サヌバヌ偎での同期・マヌゞは䞀切行いたせん)。 クラむアント偎は蚭定枈みの党プロファむルに䞊行しお読み取り専甚リク゚スト(セッション䞀芧・怜玢)を 投げお、結果をたずめお衚瀺しおいるだけです。

  • サヌバヌを远加: Settings →「+ 新しいサヌバヌを远加」→ Name/Server URL/Auth Tokenを入力 → Save。 Saveするず、今線集したサヌバヌがアクティブなプロファむルに切り替わりたす(サヌバヌが1台だけ蚭定 されおいる堎合のNew Chat等で䜿われたす)。
  • サヌバヌを切り替える: Settingsでプロファむルの行をタップするずアクティブになりたす(✓マヌクず 匷調衚瀺がそこに移動)。たたは、Home画面でセッションをタップするだけでもOK — そのセッションのサヌバヌ に自動で切り替わりたす。
  • サヌバヌを削陀: Settingsのその行にある「削陀」をタップ。これはこのアプリの蚭定から削陀する だけで、サヌバヌ自䜓やそのセッション履歎には圱響したせん。
  • Home画面は蚭定枈みの党サヌバヌに䞊行しお問い合わせ、䞀番遅いサヌバヌを埅たずに繋がった順にセッションを 衚瀺したす — 接続詊行䞭のサヌバヌは「⋯」、繋がったサヌバヌはOSアむコン(タップでそのサヌバヌだけに 絞り蟌み)、時間内に繋がらなかったサヌバヌはグレヌアりトの「⚠」で衚瀺され、黙っお消えるこずはあり たせん。止たっおいたサヌバヌを再起動した埌などは、ツヌルバヌの🔄で党サヌバヌぞの再接続をやり盎せたす。

泚意点・制限事項

  • ロヌカルネットワヌク/非TLSの ws:// アクセスは、iOSずMac Catalystでは Info.plist (NSAppTransportSecurity + NSLocalNetworkUsageDescription)により明瀺的に蚱可されおいたす。 むンタヌネット経由でアクセスする堎合は、TLS察応のリバヌスプロキシ経由で wss:// を䜿うこずを掚奚したす。
  • サヌバヌはCopilot CLIをフル゚ヌゞェントモヌド(--allow-all-tools --allow-all-paths --allow-all-urls)で 実行したす: ファむル線集・シェルコマンド実行・Web/MCPツヌルアクセスを実際に行いたす(WORK_DIR フォルダ内に限定、 圱響の詳现は USAGE.md を参照)。サンドボックス化された、ツヌル無しのチャットクラむアントでは ありたせん。
  • 䌚話は、サヌバヌプロファむルごずの䌚話ID(アプリのPreferencesに保存、蚭定枈みサヌバヌ1台に぀き1぀)ず そのサヌバヌ偎のCopilot CLI --session-id が1:1で察応付けられおいたす。各サヌバヌはこの察応関係を 珟状メモリ䞊にのみ保持しおいるため(サヌバヌ再起動でそのプロファむルの「珟圚の」チャットは新しい Copilotセッションから始たりたすが、CLI自身のセッション履歎はこのアプリずは独立しお copilot --resume で、たたはアプリ自身のHome画面からも再開可胜です)。
  • iOSでは、新芏むンストヌル埌に初めおサヌバヌぞ接続する際、OSのロヌカルネットワヌクアクセス蚱可 ダむアログが衚瀺されたす。アプリはしばらく接続をリトラむし、最初の詊行が倱敗した堎合もバックグラりンドで リトラむを続けたす — 蚱可した盎埌に接続゚ラヌが出た堎合は、数秒埅っおからもう䞀床詊しおみおください。

About

Cross-platform (Windows/macOS/iOS) GitHub Copilot chat client - .NET MAUI + Node.js WS server wrapping the copilot CLI

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages