首次執行
裝好 oar 指令之後(見安裝),你和對話之間還隔著三件事:中繼需要設定檔(連接埠、誰可以連到它,以及存取 token),它需要正在執行,而你的瀏覽器需要用 token 登入。本頁依這個順序逐一說明。
設定 #
oar setup 會寫入設定檔,也就是 OAR 狀態資料夾裡的 config.(macOS 和 Linux 上是 ~/.,Windows 上是 %APPDATA%\;環境變數 OAR_ 可以改變位置)。它設定三件事,在 Windows 上還有自動啟動:
| 設定 | 意義 | 新設定檔的預設值 |
|---|---|---|
| 存取 token | 每個瀏覽器登入時使用的祕密字串。 | 隨機產生一個給你。 |
| 存取範圍 | This machine only(僅限本機),或 LAN(你網路上的其他裝置)。 | 僅限本機。 |
| 連接埠 | 中繼監聽的連接埠。 | 3333,或從 3333 起第一個空閒的連接埠。 |
| 自動啟動(Windows) | 0.9.15 新增 中繼是否自行啟動:登入時、開機時(在任何人登入之前),或完全不自動啟動。不屬於設定檔。 | 目前生效的模式;新安裝時為關閉。 |
macOS 和 Linux 的安裝程式已經替你執行過 oar setup --defaults --start,所以已有一個以這些預設值執行的中繼,安裝程式也印出了它的位址。Windows 的安裝程式最後會執行 oar setup,它會問下面的問題,但不會啟動中繼:接著請執行 oar start。手動執行 npm install -g 之後,請自己執行 oar setup,再執行 oar start。
在終端機中,oar setup 會問三個問題,每次都顯示目前的值,所以按 Enter 就會保留。0.9.15 新增 在 Windows 上它還會問第四個:中繼要如何啟動(自動啟動):
New auth token? It signs every device out.
Access: 1 = this machine only, 2 = LAN (other devices on your network) [1]:
Port [3333]:
Autostart: 1 = at sign-in, 2 = at boot, before anyone signs in (one administrator prompt), 3 = off [3]:
At boot(開機時)會在電腦上要求一次系統管理員確認;拒絕這個提示不會改變任何東西,setup 仍會寫入設定檔。
你選的連接埠必須是空閒的。setup 不接受被其他程式佔用的連接埠,在 WSL 上也不接受被 Windows 佔用的連接埠:使用 --port 時它會停止,在提問時則會再問一次。同一個安裝的中繼可以保留它自己的連接埠。
setup 也接受選項。只要給了 --port、--lan、--local、--new- 或 --autostart 其中任何一個,setup 就什麼都不問;你沒給的項目保留目前的值。
| 選項 | 作用 |
|---|---|
--port <port> |
使用這個連接埠(1 到 65535 的數字)。 |
--lan |
讓你網路上的其他裝置可以連到中繼。 |
--local |
讓中繼僅限本機使用。不能和 --lan 一起使用。 |
--new- |
更換存取 token。所有已登入的瀏覽器都會被登出。 |
--autostart signin|boot|off |
0.9.15 新增 切換中繼自行啟動的方式,和 oar autostart 的作用相同。僅限全域安裝。 |
--defaults |
什麼都不問。現有的設定檔保持原樣;新的設定檔會是僅限本機,並使用從 3333 起第一個空閒的連接埠。 |
--start |
同時啟動中繼;在有 systemd 使用者 session 的 Linux 上,還會安裝在每次登入時啟動它的服務。安裝程式使用的就是這個選項。 |
--migrate- |
用於改名之前的舊 OAR git 檢出:把 <dir> 中那個檢出的中繼狀態複製到 OAR 的狀態資料夾。檢出本身絕不會被更動。只要還有中繼從它執行,就會被拒絕。每次你指定資料夾它都會執行:已經搬過的資料夾只會告訴你這件事,沒有東西可搬的資料夾則會報錯。見搬移舊安裝。 |
當中繼正在執行,而你更改了 token、連接埠或存取範圍時,setup 會重新啟動中繼,讓變更生效。在終端機中它會先詢問 The relay is running. Restart it now to apply the change?(中繼正在執行。現在重新啟動以套用變更?);使用 --defaults,或沒有終端機時,它會立即重新啟動。如果你回答否,執行中的中繼會沿用先前的設定,直到你執行 oar restart。
最後,setup 會印出中繼位址;當手機可以連到中繼時,也會印出 QR 碼(見從手機連線)。
啟動與停止 #
在終端機中不帶引數執行 oar,會出現一個選單:標題列顯示中繼的狀態(執行中或已停止、版本、位址、連接埠、存取範圍、服務),下面每個指令各有一個項目。用方向鍵或數字加 Enter 選擇;q 離開。不在終端機中時,oar 改為印出狀態和用法。
你最先需要的指令:
| 指令 | 作用 |
|---|---|
oar start |
在背景啟動中繼並印出它的位址。已在執行的中繼不受影響。 |
oar status |
告訴你中繼是否在執行、在哪個連接埠、使用哪種存取範圍。中繼在執行時結束代碼為 0,不在執行時為 3。 |
oar url |
再次印出位址(含 token),在手機可以使用時也印出 QR 碼。 |
oar stop |
停止中繼。它會等到沒有回合在執行。 |
oar restart |
重新啟動中繼,同樣會等待執行中的回合。 |
oar start 會印出像這樣的一行:
[oar] Relay URL: http://localhost:3333/?token=<your token>
請把這個位址當成密碼看待:它帶有 token。存取範圍設為僅限本機時,會多一行說明這一點,並列出從手機連線的兩種方式:區域網路存取或 tunnel。
開啟中繼 #
在執行中繼的那台機器上,用瀏覽器開啟印出的位址。?token= 這部分會讓你登入。之後中繼會用一個有效 30 天的 cookie 讓瀏覽器保持登入,瀏覽器網址列裡的 token 也會消失。這個 cookie 是 HttpOnly 的;當你透過 HTTPS 連到中繼時,它還會被標記為 Secure。
位址中沒有 token 時,中繼會顯示一個登入框,上面寫著 Enter your access token to connect(輸入你的存取 token 以連線)。貼上 token,再按 Connect(連線)。token 錯誤時會顯示 Invalid token(token 無效)。
從手機連線 #
要讓手機或同一網路上的另一台電腦連線,請開啟區域網路存取:
oar setup --lan
如果中繼正在執行,setup 會重新啟動它(在終端機中會先詢問)。它會印出一個以你機器的網路位址取代 localhost 的位址,並附上 QR 碼。用手機掃描這個 QR 碼即可。之後 oar url 也會印出同樣的位址和 QR 碼。只有在中繼有區域網路存取、而且機器有網路位址時,才會出現 QR 碼;區域網路存取已開啟但沒有網路位址時,指令會告訴你這一點。在 WSL 的預設網路模式下,這個位址只在 WSL 內部有效,其他裝置無法連到,所以 setup 不會印出 QR 碼:請改用 tunnel,或把 WSL 切換到鏡像網路模式(在 . 中設定 networking)。
這個位址是單純的 http。要在你自己的網路之外連線,請使用 OAR 的其中一種 tunnel,它們會加上 HTTPS(見從你的網路之外連線)。
如果你遺失了 token #
oar url 會印出帶有目前 token 的位址。如果你寧可換一個新的,請執行 oar setup --new-:它會寫入新的 token 並重新啟動中繼(在終端機中會先詢問),所有已登入的裝置都必須用新位址重新登入。
第一眼看到的畫面 #
第一個畫面是空白的對話檢視。上面顯示什麼取決於中繼的狀態:
- Set up a provider(設定供應商):還沒有任何供應商就緒時顯示。它提供 Open Settings(開啟設定)和 + New chat(新對話)。GitHub Copilot 是預設供應商;它需要中繼主機上有已登入的 Copilot CLI。其他供應商要在 Settings → Providers(設定 → 供應商)下開啟。供應商一覽說明每個供應商需要什麼。
- Start your first chat(開始你的第一個對話):有供應商就緒時顯示。+ New chat 是主要按鈕。
⚙️ Settings(設定)在對話頂端的 ⋯ 選單裡,空白畫面上也有它的按鈕。在窄螢幕上,☰ 按鈕會顯示對話清單。
側邊欄的 + New Chat 會開啟一個對話框,讓你選擇供應商、模型和工作資料夾。開始對話逐欄說明這個對話框。
讓它持續執行 #
oar start 會讓中繼一直執行,直到你停止它或機器重新啟動。要在每次登入時啟動它,oar service install 可以在有 systemd 使用者 session 的 Linux 和 Windows 上完成設定;選單裡也有對應的項目。0.9.15 新增 在 Windows 上,oar autostart boot 則改為在開機時、任何人登入之前啟動它。macOS 上目前還不支援:請在那裡用 oar start 啟動中繼。
從你的網路之外連線 #
OAR 內建 tunnel 支援,讓你可以從網路之外透過 HTTPS 連到中繼:Cloudflare Tunnel 或 SSH tunnel。請先閱讀 OAR 會暴露什麼。
無法啟動時 #
| 你看到的 | 該怎麼做 |
|---|---|
oar start 顯示 Port 3333 is in use by another program (or by a relay with another token). |
有其他程式在使用這個連接埠,或使用舊 token 的中繼仍在執行。訊息會建議執行 oar setup --port <port>。 |
oar status、oar stop 或 oar restart 顯示 Port 3333 is held by another program, or by a relay with another token. |
原因相同。當這個安裝的中繼似乎正在執行時,oar stop 和 oar restart 會多印一行,附上它的處理程序 ID:用 ⋯ 選單中的 🌄 Restart web relay(重新啟動網頁中繼)從它的網頁介面重新啟動它,或結束那個處理程序,然後執行 oar start。oar status 不會給這種提示。 |
oar setup 顯示 Port 3333 is in use by another program. |
原因相同。setup 會要你換一個連接埠;使用 --port 時則會告訴你另選一個。 |
The relay did not come up — see …/ |
中繼啟動後又結束了。訊息會指出 OAR logs 資料夾中的記錄檔;請閱讀最後幾行。oar doctor 會顯示使用中的安裝、狀態資料夾和設定檔。 |
| 你手動啟動的伺服器立刻結束,並顯示 Relay already running(中繼已在執行)或 Relay appears to be owned by another live process(中繼似乎屬於另一個執行中的程序) | 每個資料目錄只能執行一個中繼。訊息會出現在那個終端機中;如果是 oar 啟動的,則會出現在 server- 中。訊息會指出持有鎖定的中繼的處理程序 ID 和鎖定檔。0.9.14 新增 訊息最後會說明該怎麼做(oar stop, or end process <pid>),而中繼會以結束代碼 78 結束。用 oar stop 停止那個中繼,然後重新啟動。見每個資料目錄一個中繼。 |
| WSL:Windows 上的瀏覽器顯示別的頁面,或拒絕 token | 在 WSL 的預設網路模式下,某個連接埠可能在發行版中是空閒的,同時卻有 Windows 程式在監聽它,此時 Windows 瀏覽器中的 localhost:<port> 會連到那個程式。oar setup 會選擇兩邊都空閒的連接埠;當 Windows 佔用該連接埠時,oar status、oar start 和 oar doctor 會發出警告。請用 oar setup --port <port> 另選一個。 |
| 登入框中出現 Invalid token | 使用 oar url 提供的 token,它印出的是目前的 token。執行 --new- 或在設定檔中更改 token 之後,舊的位址就會失效。 |
The relay runs with its earlier settings; restart it to apply the new ones. |
你在中繼執行時更改了 token、連接埠或存取範圍。執行 oar restart 即可套用。 |