Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
b44f3eb
只改了.gitignore
shellmind112 Mar 6, 2026
9cfc003
brand: rename opencode to openresearch
shellmind112 Mar 7, 2026
e8daed4
设置了加入默认skill的按钮,让右边栏的文件可以增删,让文件可以被编辑
shellmind112 Mar 8, 2026
de9fc5f
新增目录摘要导航功能,新增换行切换按钮
shellmind112 Mar 8, 2026
02ad031
修改summary格式
Spin-Particle Mar 10, 2026
994d115
加入了write-paper skill
Spin-Particle Mar 11, 2026
0f8532d
rename to openresearch
shellmind112 Mar 11, 2026
806f616
fix: remove --skip-install from build-cli
shellmind112 Mar 11, 2026
2fae882
fix: remove Zone.Identifier files that break Windows checkout
shellmind112 Mar 11, 2026
c84fc62
remove build-tauri job, keep electron only
shellmind112 Mar 11, 2026
c61b61a
rename to openresearch, serve web locally, remove tauri desktop
shellmind112 Mar 11, 2026
5648a83
bun.lock
shellmind112 Mar 12, 2026
dae49bb
开发了知识库功能
Spin-Particle Mar 12, 2026
bc6d1f9
开发了知识库功能
Spin-Particle Mar 12, 2026
214f4f4
fix web problem
shellmind112 Mar 12, 2026
aabdde7
fix: knowledge button documentCount type error
shellmind112 Mar 12, 2026
fb4c398
chore: cleanup (#17184)
adamdotdevin Mar 12, 2026
0e1d1cd
refactor(provider): flow branded ProviderID/ModelID through internal …
kitlangton Mar 12, 2026
928e30a
fix: knowledge button tooltip shows correct document count
Spin-Particle Mar 12, 2026
16ca2cb
Spin-Particle Mar 12, 2026
b348d16
chore: cleanup (#17184)
adamdotdevin Mar 12, 2026
18d93e9
chore: generate
opencode-agent[bot] Mar 12, 2026
5b03195
fix provider
shellmind112 Mar 12, 2026
dd5e761
feat: session load perf (#17186)
adamdotdevin Mar 12, 2026
1055709
chore: cleanup (#17197)
adamdotdevin Mar 12, 2026
b6d525f
zen: fix nemotron issue
fwang Mar 12, 2026
e19244c
fix(app): titlebar cleanup (#17206)
iamdavidhill Mar 12, 2026
93f735e
fix(app): not loading message nav
adamdotdevin Mar 12, 2026
f7f633f
feat(app): AMOLED theme
adamdotdevin Mar 12, 2026
7aee1c0
fix(app): optimistic revert/restore
adamdotdevin Mar 12, 2026
533d7b5
feat(app): follow-up behavior (#17233)
adamdotdevin Mar 12, 2026
7cc2a83
fix: if server password exists, use basic auth for plugin client by d…
rekram1-node Mar 12, 2026
2368c90
fix(app): message loading
adamdotdevin Mar 12, 2026
4f11adc
fix(app): task error state
adamdotdevin Mar 12, 2026
dcc224d
fix(app): sidebar re-rendering too often
adamdotdevin Mar 12, 2026
dd6431e
zen: handle cache key
fwang Mar 12, 2026
a8e73ea
release: v1.2.25
Mar 12, 2026
43352da
fix(ci): keep test runs on dev (#17260)
Hona Mar 12, 2026
bed87f1
feat(app): interruption state
adamdotdevin Mar 13, 2026
edfa30f
reorder provider list in providers login (#17262)
kitlangton Mar 13, 2026
83c5005
fix(app): increase CI e2e workers (#17263)
Hona Mar 13, 2026
0a6ca23
tweak: rm openrouter warning (#17259)
rekram1-node Mar 13, 2026
008fb34
refactor(auth): effectify AuthService (#17212)
kitlangton Mar 13, 2026
ef56b55
feat(cli): add console account subcommands (#17265)
kitlangton Mar 13, 2026
79c2739
desktop: multi-window support in electron (#17155)
Brendonovich Mar 13, 2026
3fe1a6c
refactor(provider): effectify ProviderAuthService (#17227)
kitlangton Mar 13, 2026
9715c82
chore: generate
opencode-agent[bot] Mar 13, 2026
78e61a1
fix(app): stabilize todo dock e2e with composer probe (#17267)
Hona Mar 13, 2026
435a9a5
fix(cli): hide console command from help output (#17277)
kitlangton Mar 13, 2026
5f18f96
chore: generate
opencode-agent[bot] Mar 13, 2026
67b34ea
fix: restore knowledgeBase support in sendFollowupDraft after rebase
shellmind112 Mar 13, 2026
6dda1ca
chore: merge upstream/dev + add provider type & edit support
shellmind112 Mar 13, 2026
036a0d1
fix default skills
shellmind112 Mar 13, 2026
9921359
知识库功能
Spin-Particle Mar 13, 2026
fb18316
打包mac端app,修复了mac端app无法新建删除文件和文件夹的bug,修复了撰写论文时响应时间过长自动停止回答的bug
Spin-Particle Mar 13, 2026
c5019c6
fix bug
Spin-Particle Mar 13, 2026
5bfc020
fix: bugs (mainly) in diff
code-JDS Mar 13, 2026
46092f4
Fix the bug in the Windows installation package.
shellmind112 Mar 14, 2026
18bb5d8
fix bugs
shellmind112 Mar 14, 2026
65678dc
.
shellmind112 Mar 14, 2026
2a587ee
web version
shellmind112 Mar 13, 2026
be90481
linux web
shellmind112 Mar 14, 2026
f7bd9f8
create new project button
shellmind112 Mar 14, 2026
3dbf742
add rename function
shellmind112 Mar 14, 2026
2c802b1
Title and Icon
shellmind112 Mar 14, 2026
e99a5a9
add gemini interface
shellmind112 Mar 14, 2026
58bbbc3
fix: add google gemini i18n key to en.ts
shellmind112 Mar 14, 2026
1760635
showing skill and refresh files
shellmind112 Mar 14, 2026
6cc7958
open pdf in web
shellmind112 Mar 14, 2026
691507d
cost
shellmind112 Mar 15, 2026
1c024d9
fix filetree bugs
shellmind112 Mar 15, 2026
d750eed
fix project button
shellmind112 Mar 15, 2026
5edf5e3
fix: bugs in automatically loading diffs when modifying files
code-JDS Mar 15, 2026
5c9248f
feat: copy path and copy relative path
code-JDS Mar 15, 2026
4359071
docs: add architecture design and requirements documentation
catmeow123456 Mar 16, 2026
f99155a
fix: canonicalize directory paths with Filesystem.resolve
catmeow123456 Mar 16, 2026
0add08d
fix the left bar on windows
shellmind112 Mar 16, 2026
98388d7
fix: Refresh the conversation record
shellmind112 Mar 16, 2026
746f9bc
feat: web-ui `base_url` settings
code-JDS Mar 16, 2026
2fbb717
docs: update architecture with database path and Part type details
catmeow123456 Mar 16, 2026
58eacba
fix: improve sidecar process cleanup on exit for non-Windows platforms
shellmind112 Mar 16, 2026
e566b59
feat: implement auto-exit for server when all browser connections close
shellmind112 Mar 17, 2026
89fa19a
feat: new session; delete session
code-JDS Mar 17, 2026
2a6c421
feat: show pdf directly
dfshfghj Mar 16, 2026
aa5be5a
feat(file-tabs): remove edit button on uneditable file
dfshfghj Mar 16, 2026
b4a796d
fix: bugs in removing custom providers
code-JDS Mar 17, 2026
ebc126c
fix: markdown rendering
code-JDS Mar 17, 2026
d4b1b95
Merge remote-tracking branch 'upstream/dev' into dev-webui
code-JDS Mar 18, 2026
0aded78
fix: bugs in name
code-JDS Mar 18, 2026
aa2c9cf
Merge pull request #7 from dfshfghj/dev
dfshfghj Mar 18, 2026
a4efef7
update the README
shellmind112 Mar 18, 2026
481da6c
fix: remove typecheck script from empty desktop package
shellmind112 Mar 18, 2026
5c13fe6
fix: add missing @effect/platform-node dependency
shellmind112 Mar 18, 2026
3926e09
change openresearch to Aether
shellmind112 Mar 18, 2026
d7ae5cf
move default skills to the end
shellmind112 Mar 18, 2026
11271f9
refactor: replace Mark component with styled text and update session …
shellmind112 Mar 18, 2026
d6f064f
feat: add runPython function to execute Python scripts in terminal
shellmind112 Mar 18, 2026
31e7e93
fix: resolve TypeScript error for possibly undefined result.data in t…
shellmind112 Mar 18, 2026
91c7363
feat: web-ui default model settings
code-JDS Mar 18, 2026
3a8b0ef
feat(win): open file or dir in explorer
dfshfghj Mar 18, 2026
f5a50dc
fix: file-tabs ui
dfshfghj Mar 18, 2026
b72c31b
Merge pull request #10 from dfshfghj/dev
dfshfghj Mar 18, 2026
fcc8196
feat(win): open file with default application
dfshfghj Mar 19, 2026
cc2e934
refactor: rename OpenResearch to Aether and update related documentation
shellmind112 Mar 19, 2026
15c7e61
refactor: rename OpenResearch to Aether in configuration and document…
shellmind112 Mar 19, 2026
ebe1080
Merge pull request #11 from dfshfghj/dev
dfshfghj Mar 19, 2026
e4c1530
refactor: rename OpenResearch to Aether across the project
shellmind112 Mar 19, 2026
9d8ed8f
Merge branch 'dev' of https://github.com/Science-Discovery/Aether int…
shellmind112 Mar 19, 2026
4ba9aa3
refactor: simplify logo rendering by removing unused shadow markers a…
shellmind112 Mar 19, 2026
39c3e26
feat: add default skills copying and update paths for bundled skills …
shellmind112 Mar 19, 2026
bd89874
feat: add gitignore in web-ui
code-JDS Mar 19, 2026
f6244c6
fix: bug
code-JDS Mar 19, 2026
1828a07
fix: bugs in sdk
code-JDS Mar 19, 2026
b309873
refactor: update description from AI coding assistant to AI researchi…
shellmind112 Mar 20, 2026
1481825
fix: correct SDK skills API calls to use nested config.skills object
shellmind112 Mar 20, 2026
933617b
feat(settings): add system font option for code to general settings
dfshfghj Mar 19, 2026
9f450ca
feat(editor): code editor theme
dfshfghj Mar 19, 2026
e90cf79
conflict solved
code-JDS Mar 20, 2026
983eb39
feat: add unarchive functionality and corresponding UI elements; intr…
shellmind112 Mar 21, 2026
daf6e50
feat: implement file browser dialog for directory selection and manag…
shellmind112 Mar 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
102 changes: 102 additions & 0 deletions .github/workflows/build-desktop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: build-desktop
# 手动触发:在 GitHub 仓库页面 Actions → build-desktop → Run workflow
on:
workflow_dispatch:

permissions:
contents: write

jobs:
# ── 第一步:构建 CLI 二进制(所有平台) ──────────────────────────────
build-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: ./.github/actions/setup-bun

- name: Build CLI
run: ./packages/opencode/script/build.ts
env:
OPENCODE_RELEASE: ""

- uses: actions/upload-artifact@v4
with:
name: opencode-cli
path: packages/opencode/dist

# ── 第二步:构建 Electron 桌面安装包 ──────────────────────────────────
build-electron:
needs: build-cli
strategy:
fail-fast: false
matrix:
include:
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
platform_flag: --linux
- host: macos-latest
target: aarch64-apple-darwin
platform_flag: --mac --arm64
- host: macos-latest
target: x86_64-apple-darwin
platform_flag: --mac --x64
- host: windows-latest
target: x86_64-pc-windows-msvc
platform_flag: --win
runs-on: ${{ matrix.host }}
steps:
- uses: actions/checkout@v4

- uses: ./.github/actions/setup-bun

- uses: actions/setup-node@v4
with:
node-version: "24"

- name: Install Linux system deps
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y rpm

- uses: actions/download-artifact@v4
with:
name: opencode-cli
path: packages/opencode/dist

# 将对应平台的 CLI 复制到 resources 目录
- name: Prepare sidecar
shell: bash
run: |
mkdir -p packages/desktop-electron/resources
TARGET="${{ matrix.target }}"

if [[ "$TARGET" == "x86_64-pc-windows-msvc" ]]; then
cp packages/opencode/dist/opencode-windows-x64-baseline/bin/opencode.exe \
packages/desktop-electron/resources/opencode-cli.exe
elif [[ "$TARGET" == "aarch64-apple-darwin" ]]; then
cp packages/opencode/dist/opencode-darwin-arm64/bin/opencode \
packages/desktop-electron/resources/opencode-cli
elif [[ "$TARGET" == "x86_64-apple-darwin" ]]; then
cp packages/opencode/dist/opencode-darwin-x64-baseline/bin/opencode \
packages/desktop-electron/resources/opencode-cli
elif [[ "$TARGET" == "x86_64-unknown-linux-gnu" ]]; then
cp packages/opencode/dist/opencode-linux-x64-baseline/bin/opencode \
packages/desktop-electron/resources/opencode-cli
fi

chmod +x packages/desktop-electron/resources/opencode-cli || true

- name: Build frontend
run: bun run build
working-directory: packages/desktop-electron

- name: Package
run: npx electron-builder ${{ matrix.platform_flag }} --publish never --config electron-builder.config.ts
working-directory: packages/desktop-electron

- uses: actions/upload-artifact@v4
with:
name: electron-${{ matrix.target }}
path: packages/desktop-electron/dist/*
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ opencode-dev
logs/
*.bun-build
tsconfig.tsbuildinfo
.claude/
174 changes: 174 additions & 0 deletions .opencode/skills/academic-researcher/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
---
name: academic-researcher
description: |
Academic research assistant for literature reviews, paper analysis, and scholarly writing.
Use when: reviewing academic papers, conducting literature reviews, writing research summaries,
analyzing methodologies, formatting citations, or when user mentions academic research, scholarly
writing, papers, or scientific literature.
Special focus: First-principles derivations, figure analysis, and equation documentation.
license: MIT
metadata:
author: peking-university
version: "4.0.0"
---

# Academic Researcher

You are an expert academic research assistant. Your goal is to produce a **complete, polished Markdown document** that reads like a real paper — not a filled-in template. Write in flowing, precise academic prose.

Work through the phases below **sequentially**. At the end of each phase, update the output document file. Every phase writes to the **same file**, progressively building a complete paper.

---

## Before Starting: Create the Output File

Determine the output filename first:

| Type | Pattern | Example |
|------|---------|---------|
| Single paper review | `review_<AuthorYear>_<ShortTitle>.md` | `review_Han2020_BootstrapQM.md` |
| Literature review | `litreview_<Topic>.md` | `litreview_BootstrapMethods.md` |
| Paper summary | `summary_<AuthorYear>_<ShortTitle>.md` | `summary_Han2020_Bootstrap.md` |

Save in the current working directory unless the user specifies otherwise. Create the file immediately with a title and placeholder section headers so the document exists from the start.

---

## Phase 1: Resource Discovery

Gather everything before writing.

**Tasks:**
1. Read every paper, PDF, or document the user provided or referenced
2. Use Glob to find all local images (`**/*.png`, `**/*.jpg`, `**/*.jpeg`, `**/*.svg`, `**/*.gif`; check `figures/`, `figs/`, `images/`, `plots/`, `results/`)
3. For each image, use Read to inspect it visually — note what it shows and which section it likely belongs to
4. Identify: core topic, key authors, time range, central research questions

**End of Phase 1 — Update document:**
Write the following sections to the file:
- **Title, author, date, keywords**
- **Abstract** (2–3 paragraphs summarizing the whole document; revise later if needed)
- **Introduction**: background, motivation, research questions, scope, and organization of the paper

---

## Phase 2: Paper-by-Paper Analysis

Analyze each source in depth.

**For each paper, work through:**
- **Research question**: What problem does it address? Why does it matter?
- **Methodology**: What approach is used? What are its assumptions and limitations?
- **Key results**: What did they find? How strong is the evidence?
- **Contribution**: How does this advance the field relative to prior work?
- **Connections**: How does this paper relate to others in the set?

**End of Phase 2 — Update document:**
Write or update the **Literature Synthesis** section. Organize thematically — do not just summarize papers one by one. Compare and contrast methods, results, and interpretations across papers. Write in connected prose, citing sources as (Author, Year).

---

## Phase 3: First-Principles Equation Derivation

For every important equation in the literature, derive it from scratch.

**For each equation:**
1. State what the equation represents and where it appears
2. Define every symbol with units or type
3. State the starting axioms, postulates, or definitions explicitly
4. Derive step by step — **do not skip intermediate steps**; justify each transition
5. State all assumptions made during the derivation
6. Give the physical or mathematical interpretation of the final result
7. Note special cases, limits, or connections to other equations

**Derivation format:**
```
Starting from [fundamental principle], we define [variables with units].

Step 1: [Short description]
[equation]
Justification: [why this step follows]

Step 2: [Short description]
[equation]
Justification: [why this step follows]

...

Result:
[final equation numbered as Eq. (N)]

This expresses [physical/mathematical interpretation].
When [limiting condition], this reduces to [simpler form].
```

**End of Phase 3 — Update document:**
Write or update the **Theoretical Framework** section. Present derivations as connected narrative — introduce each equation in prose before displaying it, and explain its significance after. Number all equations sequentially as **Eq. (1)**, **Eq. (2)**, etc.

---

## Phase 4: Figure Analysis

Analyze every relevant figure, including local images discovered in Phase 1.

**For each figure:**
1. Describe precisely what is shown (plot type, axes with labels and units, curves, regions, markers, color coding)
2. Identify key visual features: trends, boundaries, crossings, convergence, outliers
3. Connect to equations: which equation predicts or explains this figure? Reference by Eq. (N)
4. Explain what physical or mathematical insight the figure provides
5. Note what changes across panels, parameter regimes, or compared datasets

**End of Phase 4 — Update document:**
Write or update the **Results and Figures** section. Embed each figure inline at the point where it is discussed:

```markdown
![Figure N: One sentence describing what is shown.](relative/path/to/image.png)

*Figure N.* [Caption: what the figure shows, key features, and its significance in context.]
```

Use **relative paths** from the output file to the image. Follow each figure immediately with the analysis written as prose, referencing equations by number.

---

## Phase 5: Synthesis and Finalization

Draw together everything from the previous phases.

**Tasks:**
1. **Research gaps**: What questions remain unanswered? What methods are missing or inadequate? What would the next experiment or derivation need to address?
2. **Future directions**: What are the most promising open problems?
3. **Conclusion**: Summarize the key insights — what the reader should take away
4. **References**: Compile all cited works in APA 7th edition (default) or the format the user specifies
5. **Revise Abstract**: Update the abstract written in Phase 1 to accurately reflect the completed document

**End of Phase 5 — Update document:**
Write or update **Research Gaps and Future Directions**, **Conclusion**, and **References**. Then revise the Abstract. Save the final version of the file and tell the user the file path.

---

## Writing Standards (apply throughout)

- Write complete, polished sentences — never leave placeholders or fill-in-the-blank text in the output
- Use precise, formal academic prose; avoid colloquialisms and contractions
- Define all mathematical symbols before their first use
- Acknowledge counterarguments and study limitations honestly
- Maintain consistent citation style throughout

---

## Citation Formats

Default: **APA 7th edition**

**APA journal article:**
> Author, A. A., & Author, B. B. (Year). Title of article. *Title of Journal*, *volume*(issue), pages. https://doi.org/xxx

**APA book:**
> Author, A. A. (Year). *Title of book* (Edition). Publisher.

**MLA journal article:**
> Author Last, First. "Title of Article." *Title of Journal*, vol. #, no. #, Year, pp. pages.

**Chicago footnote:**
> First Last, "Title of Article," *Title of Journal* vol, no. # (Year): pages.
96 changes: 96 additions & 0 deletions .opencode/skills/brainstorming/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
name: brainstorming
description: "You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation."
---

# Brainstorming Ideas Into Designs

## Overview

Help turn ideas into fully formed designs and specs through natural collaborative dialogue.

Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and get user approval.

<HARD-GATE>
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.
</HARD-GATE>

## Anti-Pattern: "This Is Too Simple To Need A Design"

Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.

## Checklist

You MUST create a task for each of these items and complete them in order:

1. **Explore project context** — check files, docs, recent commits
2. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
3. **Propose 2-3 approaches** — with trade-offs and your recommendation
4. **Present design** — in sections scaled to their complexity, get user approval after each section
5. **Write design doc** — save to `docs/plans/YYYY-MM-DD-<topic>-design.md` and commit
6. **Transition to implementation** — invoke writing-plans skill to create implementation plan

## Process Flow

```dot
digraph brainstorming {
"Explore project context" [shape=box];
"Ask clarifying questions" [shape=box];
"Propose 2-3 approaches" [shape=box];
"Present design sections" [shape=box];
"User approves design?" [shape=diamond];
"Write design doc" [shape=box];
"Invoke writing-plans skill" [shape=doublecircle];

"Explore project context" -> "Ask clarifying questions";
"Ask clarifying questions" -> "Propose 2-3 approaches";
"Propose 2-3 approaches" -> "Present design sections";
"Present design sections" -> "User approves design?";
"User approves design?" -> "Present design sections" [label="no, revise"];
"User approves design?" -> "Write design doc" [label="yes"];
"Write design doc" -> "Invoke writing-plans skill";
}
```

**The terminal state is invoking writing-plans.** Do NOT invoke frontend-design, mcp-builder, or any other implementation skill. The ONLY skill you invoke after brainstorming is writing-plans.

## The Process

**Understanding the idea:**
- Check out the current project state first (files, docs, recent commits)
- Ask questions one at a time to refine the idea
- Prefer multiple choice questions when possible, but open-ended is fine too
- Only one question per message - if a topic needs more exploration, break it into multiple questions
- Focus on understanding: purpose, constraints, success criteria

**Exploring approaches:**
- Propose 2-3 different approaches with trade-offs
- Present options conversationally with your recommendation and reasoning
- Lead with your recommended option and explain why

**Presenting the design:**
- Once you believe you understand what you're building, present the design
- Scale each section to its complexity: a few sentences if straightforward, up to 200-300 words if nuanced
- Ask after each section whether it looks right so far
- Cover: architecture, components, data flow, error handling, testing
- Be ready to go back and clarify if something doesn't make sense

## After the Design

**Documentation:**
- Write the validated design to `docs/plans/YYYY-MM-DD-<topic>-design.md`
- Use elements-of-style:writing-clearly-and-concisely skill if available
- Commit the design document to git

**Implementation:**
- Invoke the writing-plans skill to create a detailed implementation plan
- Do NOT invoke any other skill. writing-plans is the next step.

## Key Principles

- **One question at a time** - Don't overwhelm with multiple questions
- **Multiple choice preferred** - Easier to answer than open-ended when possible
- **YAGNI ruthlessly** - Remove unnecessary features from all designs
- **Explore alternatives** - Always propose 2-3 approaches before settling
- **Incremental validation** - Present design, get approval before moving on
- **Be flexible** - Go back and clarify when something doesn't make sense
Loading
Loading