Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
6 changes: 0 additions & 6 deletions .opencode/.gitignore

This file was deleted.

15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1 align="center">Aether</h1>
<p align="center"><em>Autonomous Engine for Theoretical & Hands-on Exploration in Research</em></p>
<p align="center">An AI researching assistant for researchers, built on <a href="https://github.com/anomalyco/opencode">OpenCode</a>.</p>
<p align="center">An AI researching assistant for researchers, tailored for research-heavy workflows.</p>

<p align="center">
<a href="README.md">English</a> |
Expand All @@ -11,7 +11,7 @@

## Overview

Aether extends OpenCode with research-focused improvements, supporting terminal, browser, and desktop interfaces. Key improvements over upstream:
Aether is a research-focused AI assistant for terminal, browser, and desktop workflows. Key strengths include:

- **Ready to use**: Download and double-click to launch — no dev environment setup required; built-in default model settings so you can start immediately
- **Built-in research Skills**: Pre-configured prompts for literature review, experiment logging, paper writing, and more — no manual prompt engineering needed
Expand Down Expand Up @@ -59,11 +59,11 @@ If the browser doesn't open automatically, visit the URL shown in the terminal.

Extract (or install) and double-click to run:

| Platform | File |
|---|---|
| Linux | `aether-linux-x64.AppImage` / `.deb` / `.rpm` |
| macOS | `aether-mac-arm64.dmg` (Apple Silicon) / `aether-mac-x64.dmg` |
| Windows | `aether-win-x64.exe` installer / `win-unpacked/` portable |
| Platform | File |
| -------- | ------------------------------------------------------------- |
| Linux | `aether-linux-x64.AppImage` / `.deb` / `.rpm` |
| macOS | `aether-mac-arm64.dmg` (Apple Silicon) / `aether-mac-x64.dmg` |
| Windows | `aether-win-x64.exe` installer / `win-unpacked/` portable |

---

Expand All @@ -90,6 +90,7 @@ bun dev <path>
```

Two built-in agents, switch with `Tab`:

- **build**: Default mode with full permissions, for active development
- **plan**: Read-only mode for code analysis and planning

Expand Down
17 changes: 9 additions & 8 deletions README.zh.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1 align="center">Aether(以太)</h1>
<p align="center"><em>Autonomous Engine for Theoretical & Hands-on Exploration in Research</em></p>
<p align="center">面向科研人员的 AI 研究助手,基于 <a href="https://github.com/anomalyco/opencode">OpenCode</a> 深度定制。</p>
<p align="center">面向科研人员的 AI 研究助手,专为高强度科研工作流设计。</p>

<p align="center">
<a href="README.md">English</a> |
Expand All @@ -11,7 +11,7 @@

## 项目简介

Aether 在 OpenCode 基础上针对研究场景做了大量改进,支持终端、浏览器和桌面三种使用方式。相比上游的主要改进
Aether 面向研究场景进行了深度优化,支持终端、浏览器和桌面三种使用方式。主要特点包括

- **开箱即用**:下载安装包双击即可启动,无需配置开发环境;内置默认模型设置,首次打开可直接使用
- **内置科研 Skills**:预置文献阅读、实验记录、论文写作等科研场景提示词,无需手动编写 Prompt
Expand Down Expand Up @@ -59,11 +59,11 @@ chmod +x aether # 首次需要

解压(或安装)后直接双击运行:

| 平台 | 文件 |
|---|---|
| Linux | `aether-linux-x64.AppImage` / `.deb` / `.rpm` |
| macOS | `aether-mac-arm64.dmg`(Apple Silicon)/ `aether-mac-x64.dmg` |
| Windows | `aether-win-x64.exe` 安装程序 / `win-unpacked/` 便携版 |
| 平台 | 文件 |
| ------- | ------------------------------------------------------------- |
| Linux | `aether-linux-x64.AppImage` / `.deb` / `.rpm` |
| macOS | `aether-mac-arm64.dmg`(Apple Silicon)/ `aether-mac-x64.dmg` |
| Windows | `aether-win-x64.exe` 安装程序 / `win-unpacked/` 便携版 |

---

Expand All @@ -89,6 +89,7 @@ bun dev <path>
```

内置两种 Agent,`Tab` 键切换:

- **build**:默认模式,具备完整权限,适合开发
- **plan**:只读模式,适合代码分析与规划

Expand Down Expand Up @@ -152,4 +153,4 @@ source ~/.bashrc
**浏览器未自动打开**:手动访问终端中显示的 URL(依赖 `xdg-open`)。

**提示找不到前端资源**:确认 `aether` 二进制和 `web/` 目录在同一目录下。
**加入我们的社区** [飞书](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=738j8655-cd59-4633-a30a-1124e0096789&qr_code=true) | [X.com](https://x.com/opencode)
**加入我们的社区** [飞书](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=738j8655-cd59-4633-a30a-1124e0096789&qr_code=true) | [X.com](https://x.com/Aether)
26 changes: 13 additions & 13 deletions README.zht.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<picture>
<source srcset="packages/console/app/src/asset/logo-ornate-dark.svg" media="(prefers-color-scheme: dark)">
<source srcset="packages/console/app/src/asset/logo-ornate-light.svg" media="(prefers-color-scheme: light)">
<img src="packages/console/app/src/asset/logo-ornate-light.svg" alt="OpenCode logo">
<img src="packages/console/app/src/asset/logo-ornate-light.svg" alt="Aether logo">
</picture>
</a>
</p>
Expand Down Expand Up @@ -39,7 +39,7 @@
<a href="README.vi.md">Tiếng Việt</a>
</p>

[![OpenCode Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai)
[![Aether Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai)

---

Expand All @@ -66,7 +66,7 @@ nix run nixpkgs#opencode # 或使用 github:anomalyco/opencode 以取

### 桌面應用程式 (BETA)

OpenCode 也提供桌面版應用程式。您可以直接從 [發佈頁面 (releases page)](https://github.com/anomalyco/opencode/releases) 或 [opencode.ai/download](https://opencode.ai/download) 下載。
Aether 也提供桌面版應用程式。您可以直接從 [發佈頁面 (releases page)](https://github.com/anomalyco/opencode/releases) 或 [opencode.ai/download](https://opencode.ai/download) 下載。

| 平台 | 下載連結 |
| --------------------- | ------------------------------------- |
Expand Down Expand Up @@ -99,29 +99,29 @@ XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash

### Agents

OpenCode 內建了兩種 Agent,您可以使用 `Tab` 鍵快速切換。
Aether 內建了兩種 Agent,您可以使用 `Tab` 鍵快速切換。

- **build** - 預設模式,具備完整權限的 Agent,適用於開發工作。
- **plan** - 唯讀模式,適用於程式碼分析與探索。
- 預設禁止修改檔案。
- 執行 bash 指令前會詢問權限。
- 非常適合用來探索陌生的程式碼庫或規劃變更。

此外,OpenCode 還包含一個 **general** 子 Agent,用於處理複雜搜尋與多步驟任務。此 Agent 供系統內部使用,亦可透過在訊息中輸入 `@general` 來呼叫。
此外,Aether 還包含一個 **general** 子 Agent,用於處理複雜搜尋與多步驟任務。此 Agent 供系統內部使用,亦可透過在訊息中輸入 `@general` 來呼叫。

了解更多關於 [Agents](https://opencode.ai/docs/agents) 的資訊。

### 線上文件

關於如何設定 OpenCode 的詳細資訊,請參閱我們的 [**官方文件**](https://opencode.ai/docs)。
關於如何設定 Aether 的詳細資訊,請參閱我們的 [**官方文件**](https://opencode.ai/docs)。

### 參與貢獻

如果您有興趣參與 OpenCode 的開發,請在提交 Pull Request 前先閱讀我們的 [貢獻指南 (Contributing Docs)](./CONTRIBUTING.md)。
如果您有興趣參與 Aether 的開發,請在提交 Pull Request 前先閱讀我們的 [貢獻指南 (Contributing Docs)](./CONTRIBUTING.md)。

### 基於 OpenCode 進行開發
### 基於 Aether 進行開發

如果您正在開發與 OpenCode 相關的專案,並在名稱中使用了 "opencode"(例如 "opencode-dashboard" 或 "opencode-mobile"),請在您的 README 中加入聲明,說明該專案並非由 OpenCode 團隊開發,且與我們沒有任何隸屬關係。
如果您正在開發與 Aether 相關的專案,並在名稱中使用了 "opencode"(例如 "opencode-dashboard" 或 "opencode-mobile"),請在您的 README 中加入聲明,說明該專案並非由 Aether 團隊開發,且與我們沒有任何隸屬關係。

### 常見問題 (FAQ)

Expand All @@ -130,11 +130,11 @@ OpenCode 內建了兩種 Agent,您可以使用 `Tab` 鍵快速切換。
在功能面上與 Claude Code 非常相似。以下是關鍵差異:

- 100% 開源。
- 不綁定特定的服務提供商。雖然我們推薦使用透過 [OpenCode Zen](https://opencode.ai/zen) 提供的模型,但 OpenCode 也可搭配 Claude, OpenAI, Google 甚至本地模型使用。隨著模型不斷演進,彼此間的差距會縮小且價格會下降,因此具備「不限廠商 (provider-agnostic)」的特性至關重要。
- 不綁定特定的服務提供商。雖然我們推薦使用透過 [OpenCode Zen](https://opencode.ai/zen) 提供的模型,但 Aether 也可搭配 Claude, OpenAI, Google 甚至本地模型使用。隨著模型不斷演進,彼此間的差距會縮小且價格會下降,因此具備「不限廠商 (provider-agnostic)」的特性至關重要。
- 內建 LSP (語言伺服器協定) 支援。
- 專注於終端機介面 (TUI)。OpenCode 由 Neovim 愛好者與 [terminal.shop](https://terminal.shop) 的創作者打造。我們將不斷挑戰終端機介面的極限。
- 客戶端/伺服器架構 (Client/Server Architecture)。這讓 OpenCode 能夠在您的電腦上運行的同時,由行動裝置進行遠端操控。這意味著 TUI 前端只是眾多可能的客戶端之一。
- 專注於終端機介面 (TUI)。Aether 由 Neovim 愛好者與 [terminal.shop](https://terminal.shop) 的創作者打造。我們將不斷挑戰終端機介面的極限。
- 客戶端/伺服器架構 (Client/Server Architecture)。這讓 Aether 能夠在您的電腦上運行的同時,由行動裝置進行遠端操控。這意味著 TUI 前端只是眾多可能的客戶端之一。

---

**加入我們的社群** [飞书](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=738j8655-cd59-4633-a30a-1124e0096789&qr_code=true) | [X.com](https://x.com/opencode)
**加入我們的社群** [飞书](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=738j8655-cd59-4633-a30a-1124e0096789&qr_code=true) | [X.com](https://x.com/Aether)
2 changes: 1 addition & 1 deletion packages/app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Your app is ready to be deployed!

## E2E Testing

Playwright starts the Vite dev server automatically via `webServer`, and UI tests need an opencode backend (defaults to `localhost:4096`).
Playwright starts the Vite dev server automatically via `webServer`, and UI tests need an Aether backend (defaults to `localhost:4096`).
Use the local runner to create a temp sandbox, seed data, and run the tests.

```bash
Expand Down
12 changes: 9 additions & 3 deletions packages/app/src/components/dialog-connect-provider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -463,15 +463,18 @@ export function DialogConnectProvider(props: { provider: string }) {
</div>
</Match>
</Switch>
<form ref={(el) => ref = el} onSubmit={handleSubmit} class="flex flex-col items-start gap-4">
<form ref={(el) => (ref = el)} onSubmit={handleSubmit} class="flex flex-col items-start gap-4">
<TextField
autofocus
type="password"
label={language.t("provider.connect.apiKey.label", { provider: provider().name })}
placeholder={language.t("provider.connect.apiKey.placeholder")}
description={hasKey ? language.t("provider.custom.field.apiKey.savedDescription") : undefined}
value={form.apiKey}
onChange={(v) => { setForm("apiKey", v); setForm("err", undefined) }}
onChange={(v) => {
setForm("apiKey", v)
setForm("err", undefined)
}}
validationState={form.err ? "invalid" : undefined}
error={form.err}
/>
Expand All @@ -485,7 +488,10 @@ export function DialogConnectProvider(props: { provider: string }) {
placeholder={apiURL || language.t("provider.connect.baseURL.placeholder")}
description={language.t("provider.connect.baseURL.description")}
value={form.baseURL}
onChange={(v) => { setForm("baseURL", v); setForm("urlErr", undefined) }}
onChange={(v) => {
setForm("baseURL", v)
setForm("urlErr", undefined)
}}
validationState={form.urlErr ? "invalid" : undefined}
error={form.urlErr}
/>
Expand Down
Loading
Loading