Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
234 commits
Select commit Hold shift + click to select a range
e49306b
rm log statement
rekram1-node Jan 25, 2026
fc57c07
chore: generate
actions-user Jan 25, 2026
14b00f6
fix(app): escape should always close dialogs
adamdotdevin Jan 25, 2026
d115f33
fix(app): don't allow workspaces in non-vcs projects
adamdotdevin Jan 25, 2026
94ce289
fix(app): run start command after reset
adamdotdevin Jan 25, 2026
407f34f
chore: cleanup
adamdotdevin Jan 25, 2026
835b396
chore: i18n for readme
adamdotdevin Jan 25, 2026
a848435
chore: readme links
adamdotdevin Jan 25, 2026
94dd0a8
ignore: rm spoof and bump plugin version
rekram1-node Jan 25, 2026
045c30a
docs: fix permission event name (permission.asked not permission.upda…
MartinWie Jan 25, 2026
5753232
zen: handle subscription payment failure
fwang Jan 25, 2026
f0830a7
ignore: update AGENTS.md
rekram1-node Jan 25, 2026
3071720
fix(tui): Move animations toggle to global System category (resolves …
ariane-emory Jan 25, 2026
fbcf138
chore: better i18n links
adamdotdevin Jan 26, 2026
5369e96
fix(app): line selection colors
adamdotdevin Jan 26, 2026
578361d
fix: remove broken app.tsx command option
rekram1-node Jan 26, 2026
3d23d2d
fix(app): missing translations for status
adamdotdevin Jan 26, 2026
ab32688
Add highlight tag parsing for changelog with video support
R44VC0RP Jan 26, 2026
eaad75b
tweak: adjust tui syncing logic to help prevent case where agents wou…
rekram1-node Jan 26, 2026
cc00856
Add collapsible sections, sticky version header, and style refinement…
R44VC0RP Jan 26, 2026
a5b72a7
fix(ui): tab click hit area
adamdotdevin Jan 26, 2026
03d8847
wip(app): provider settings
adamdotdevin Jan 25, 2026
c323d96
wip(app): provider settings
adamdotdevin Jan 25, 2026
5993a09
fix(core): don't override source in custom provider loaders
adamdotdevin Jan 26, 2026
00d960d
chore: cleanup
adamdotdevin Jan 26, 2026
a09a870
chore: cleanup
adamdotdevin Jan 26, 2026
9d35a0b
chore: cleanup
adamdotdevin Jan 26, 2026
99ae3a7
chore: cleanup
adamdotdevin Jan 26, 2026
8c4bf22
fix(web): update spacing on the changelog page
R44VC0RP Jan 26, 2026
23d85f4
docs: add warning about Claude Pro/Max subscription support (#10595)
R44VC0RP Jan 26, 2026
0222658
ignore: update AGENTS.md to state that inference should be used
rekram1-node Jan 26, 2026
9a33b1e
ignore: update download stats 2026-01-26
actions-user Jan 26, 2026
d03c5f6
perf(app): performance improvements
adamdotdevin Jan 26, 2026
c87232d
perf(app): performance improvements
adamdotdevin Jan 26, 2026
c4f1087
chore: details
adamdotdevin Jan 26, 2026
444934a
fix(tui): add visual feedback for diff wrap and conceal toggles (#10655)
IdrisGit Jan 26, 2026
6b83b17
fix: await SessionRevert.cleanup for shell (#10669)
noamzbr Jan 26, 2026
0edd304
fix: Make diff wrapping toggle always available in command_list and c…
ariane-emory Jan 26, 2026
0d651ea
feat(app): default servers on web
adamdotdevin Jan 26, 2026
3296b90
fix(app): handle non-tool call permissions
adamdotdevin Jan 26, 2026
6c1e18f
fix(app): line selection waits on ready
adamdotdevin Jan 26, 2026
1934ee1
wip(app): model settings
adamdotdevin Jan 26, 2026
84b12a8
feat(app): model settings
adamdotdevin Jan 26, 2026
7f75f71
chore: generate
actions-user Jan 26, 2026
af3d8c3
wip(app): sidebar hover full
adamdotdevin Jan 26, 2026
ff35db0
wip(app): full-height sidebar
adamdotdevin Jan 26, 2026
7016be0
wip(app): full-height sidebar
adamdotdevin Jan 26, 2026
cd46761
feat(app): better sidebar hover when collapsed
adamdotdevin Jan 26, 2026
7c34319
fix(app): query selector with non-latin chars
adamdotdevin Jan 26, 2026
fcea7e1
chore: stale-while-revalidate headers for changelog
adamdotdevin Jan 26, 2026
805ae19
chore: generate
actions-user Jan 26, 2026
b1fbfa7
feat(opencode): add agent description (#10680)
SteffenDE Jan 26, 2026
39a73d4
feat: dynamically resolve AGENTS.md files from subdirectories as agen…
rekram1-node Jan 26, 2026
3dce6a6
chore: gen changelog page off changelog json
adamdotdevin Jan 26, 2026
f48784d
upgrade opentui to v0.1.75
kommander Jan 25, 2026
32a0dce
chore: update nix node_modules hashes
actions-user Jan 26, 2026
5856ea4
fix: move changelog footer outside content div to fix padding (#10712)
R44VC0RP Jan 26, 2026
7fcdbd1
fix(app): Order themes alphabetically (#10698)
sam-huckaby Jan 26, 2026
984518b
fix(app): restore external link opening in system browser (#10697)
alexyaroshuk Jan 26, 2026
783121c
fix(ui): use focus-visible instead of focus to prevent sticky hover e…
ProdigyRahul Jan 26, 2026
7e34d27
fix: add 44px top padding to sticky version header on changelog (#10715)
R44VC0RP Jan 26, 2026
d9eed4c
feat(app): file tree
adamdotdevin Jan 5, 2026
ebeed03
wip(app): file tree mode
adamdotdevin Jan 26, 2026
801eb5d
wip(app): file tree mode
adamdotdevin Jan 26, 2026
b8e8d82
chore: cleanup
adamdotdevin Jan 26, 2026
37f1a1a
chore: cleanup
adamdotdevin Jan 26, 2026
d05ed5c
chore(app): createStore over signals
adamdotdevin Jan 26, 2026
ec2ab63
fix(enterprise): add message navigation to share page desktop view (#…
zerone0x Jan 26, 2026
3fdd08d
chore: fix changelog page
adamdotdevin Jan 26, 2026
4c9d879
Revert "fix(app): restore external link opening in system browser (#1…
adamdotdevin Jan 26, 2026
7795cae
ignore: tweak ai deps
rekram1-node Jan 26, 2026
ac53a37
feat: use anthropic compat messages api for anthropic models through …
rekram1-node Jan 26, 2026
b0f865e
chore: debug changelog
adamdotdevin Jan 26, 2026
837037c
fix: ensure openai 404 errors are retried (#10590)
tim-smart Jan 26, 2026
18bfc74
chore: generate
actions-user Jan 26, 2026
8b17ac6
test(app): e2e test for sidebar nav
adamdotdevin Jan 26, 2026
de3b654
chore: refactor changelog
adamdotdevin Jan 26, 2026
319ad2a
fix(app): session load cap
adamdotdevin Jan 26, 2026
97aec21
chore(app): missing i18n strings
adamdotdevin Jan 26, 2026
04337f6
chore: cleanup
adamdotdevin Jan 26, 2026
d4e3acf
fix(app): session sync issue
adamdotdevin Jan 26, 2026
36b8328
chore: generate
actions-user Jan 26, 2026
810bc01
fix(ui): update button styles and disconnect button size
iamdavidhill Jan 26, 2026
e0e97e9
fix(app): set provider row height to 56px
iamdavidhill Jan 26, 2026
9346c1a
fix(app): add hover text for env-connected providers
iamdavidhill Jan 26, 2026
7c96d70
fix(app): use default cursor for env provider text
iamdavidhill Jan 26, 2026
6f3d413
feat(ui): add providers icon and use in settings
iamdavidhill Jan 26, 2026
ecd04a1
feat(ui): add models icon and use in settings
iamdavidhill Jan 26, 2026
0a572af
fix(app): style view all button with interactive color and margin
iamdavidhill Jan 26, 2026
92229b4
feat(ui): add optional transition animations to dialog
iamdavidhill Jan 26, 2026
7caf59b
fix(ui): prevent double-close and fix dialog replacement
iamdavidhill Jan 26, 2026
3ac11df
feat(app): add transition to select provider dialog
iamdavidhill Jan 26, 2026
7962ff3
feat(app): add transition to command palette
iamdavidhill Jan 26, 2026
c551f7e
fix(ui): reduce dialog transition in time to 150ms
iamdavidhill Jan 26, 2026
0f4a10f
feat(app): add provider descriptions to settings
iamdavidhill Jan 26, 2026
d9a61cd
feat(app): add Vercel AI Gateway provider description
iamdavidhill Jan 26, 2026
0dcb850
fix(ui): scope filetree pill tabs styling
iamdavidhill Jan 26, 2026
0e08c6c
fix(app): adjust filetree panel padding
iamdavidhill Jan 26, 2026
f4392e0
fix(app): tighten filetree row spacing
iamdavidhill Jan 26, 2026
9babdb8
fix(app): use chevron icons for filetree folders
iamdavidhill Jan 26, 2026
fca0825
fix(app): use medium font for filetree items
iamdavidhill Jan 26, 2026
99cd7f3
fix(app): refine filetree row spacing and indent
iamdavidhill Jan 26, 2026
2be4598
fix(app): reduce filetree folder indent
iamdavidhill Jan 26, 2026
010ed55
fix(app): dim non-deep filetree guide lines
iamdavidhill Jan 26, 2026
c6febd8
fix(app): fade filetree guide lines on hover
iamdavidhill Jan 26, 2026
3f9b59c
fix(app): move file tree toggle to right
iamdavidhill Jan 26, 2026
5a16d99
fix(app): disable tooltips in filetree tabs
iamdavidhill Jan 26, 2026
ae815cc
test(app): fix e2e test
adamdotdevin Jan 26, 2026
c700b92
ci: add stale pr job
rekram1-node Jan 26, 2026
6a62b44
ci: add dry-run option to stale PR closer workflow
rekram1-node Jan 26, 2026
8b5dde5
tweak: retry logic to catch certain provider problems
rekram1-node Jan 26, 2026
cbe8f26
fix(app): disconnect zen provider
adamdotdevin Jan 26, 2026
d82e94c
fix(app): zen disconnect not working
adamdotdevin Jan 26, 2026
b21f82f
chore: generate
actions-user Jan 26, 2026
7b3d5f1
chore: cleanup
adamdotdevin Jan 26, 2026
9d1cf98
fix: search clear icon
iamdavidhill Dec 17, 2025
a77df3c
wip: new release modal
iamdavidhill Dec 21, 2025
c1e840b
chore: cleanup
adamdotdevin Jan 26, 2026
8b6484a
wip: highlights
adamdotdevin Jan 26, 2026
53ac394
wip: highlights
adamdotdevin Jan 26, 2026
ccc7aa4
wip: highlights
adamdotdevin Jan 26, 2026
45b09c1
tweak: when using messages api for copilot, attach anthropic beta hea…
rekram1-node Jan 26, 2026
77f11df
chore: don't flip github draft release automatically
adamdotdevin Jan 26, 2026
b07d7cd
fix(app): file tree performance
adamdotdevin Jan 26, 2026
021d9d1
fix(app): reactive file tree
adamdotdevin Jan 26, 2026
4075f9e
chore: generate
actions-user Jan 26, 2026
bb178e9
chore: cleanup
adamdotdevin Jan 26, 2026
3657747
fix(app): enable file watcher
adamdotdevin Jan 26, 2026
8371ba5
chore: cleanup
adamdotdevin Jan 26, 2026
6897bb7
chore: cleanup
adamdotdevin Jan 26, 2026
b24fd90
test(app): file tree spec
adamdotdevin Jan 26, 2026
bf463ae
feat(release): add highlights template to draft releases (#10745)
R44VC0RP Jan 27, 2026
64a3661
docs: add Italian README (#10732)
fabiomartino Jan 27, 2026
e7c6267
chore: generate
actions-user Jan 27, 2026
7655f51
fix(app): add connect provier in model selector (#10706)
ProdigyRahul Jan 27, 2026
d9e8b2b
fix(desktop): disable magnification gestures on macOS (#10605)
ysm-dev Jan 27, 2026
b59aec6
feat: add /learn command to extract session learnings to scoped AGENT…
R44VC0RP Jan 27, 2026
6cf2c3e
fix: use Instance.directory instead of process.cwd() in read tool
rekram1-node Jan 27, 2026
a8c18db
fix(core): expose Instance.directory to custom tools
adamdotdevin Jan 27, 2026
213c0e1
fix(app): only show files in select dialog when clicking + tab
adamdotdevin Jan 27, 2026
dd1624e
desktop: deduplicate tauri configs
Brendonovich Jan 27, 2026
ddffb34
ignore: update download stats 2026-01-27
actions-user Jan 27, 2026
b6565c6
fix(app): auto-scroll button sometimes sticks
adamdotdevin Jan 27, 2026
c0a5f85
chore(app): missing tooltips
adamdotdevin Jan 27, 2026
58b9b54
feat(app): forward and back buttons
adamdotdevin Jan 27, 2026
2180be2
chore: cleanup
adamdotdevin Jan 27, 2026
1f93138
feat(core): add worktree to plugin tool context
adamdotdevin Jan 27, 2026
743e83d
fix(app): agent fallback colors
adamdotdevin Jan 27, 2026
095328f
fix(app): non-fatal error handling
adamdotdevin Jan 27, 2026
b4e0cdb
docs(core): plugin tool context updates
adamdotdevin Jan 27, 2026
3862b1a
fix(ui): set filetree tablist height to 48px with centered content
iamdavidhill Jan 27, 2026
03b9317
fix(app): center filetree empty state with 32px top margin
iamdavidhill Jan 27, 2026
ebfa2b5
fix(app): update review empty states to 14px and align select file em…
iamdavidhill Jan 27, 2026
52387e7
fix(app): only show left border on plus button when sticky
iamdavidhill Jan 27, 2026
2d0049f
fix(app): use smaller close icon on tabs to match comment cards
iamdavidhill Jan 27, 2026
c68261f
fix(ui): add max-width 280px to tabs with text truncation
iamdavidhill Jan 27, 2026
ad624f6
fix(app): don't show session skeleton after workspace reset
adamdotdevin Jan 27, 2026
3e420bf
perf(app): don't keep parts in memory
adamdotdevin Jan 27, 2026
c7e2f19
perf(app): cleanup connect provider timers
adamdotdevin Jan 27, 2026
27bb827
perf(app): shared terminal ghostty-web instance
adamdotdevin Jan 27, 2026
19c7874
fix(app): select model anchor
adamdotdevin Jan 27, 2026
c3d8d2b
Revert "fix(app): select model anchor"
adamdotdevin Jan 27, 2026
3297e52
fix(app): open markdown links in external browser
adamdotdevin Jan 27, 2026
eac2d4c
fix(app): navigate to tabs when opening file
adamdotdevin Jan 27, 2026
099ab92
chore(app): cleanup tailwind vs pure css
adamdotdevin Jan 27, 2026
00e7921
fix(app): tooltips causing getComputedStyle errors in model select
adamdotdevin Jan 27, 2026
712d2b7
fix(app): swallow file search errors
adamdotdevin Jan 27, 2026
d8e7e91
feat(opencode): Handle Venice cache creation tokens (#10735)
dpuyosa Jan 27, 2026
dbc8d7e
chore: generate
actions-user Jan 27, 2026
0aa9337
chore(docs): Better explanation on how to allow tools in external dir…
OpeOginni Jan 27, 2026
f12f7e7
tweak: adjust retry check to be more defensive
rekram1-node Jan 27, 2026
8c00818
ci: make tests passing a requirement pre-release
rekram1-node Jan 27, 2026
173faca
zen: kimi k2.5 and minimax m2.1
fwang Jan 27, 2026
2f5a238
feat(app): update settings in general settings
adamdotdevin Jan 27, 2026
06e3c4a
chore(app): translations
adamdotdevin Jan 27, 2026
b9edd23
test(app): new e2e smoke tests
adamdotdevin Jan 27, 2026
07d84fe
feat(app): show loaded agents.md files
adamdotdevin Jan 27, 2026
e2c5773
fix(app): session diffs not always loading
adamdotdevin Jan 27, 2026
7de42ca
feat(app): improved layout
adamdotdevin Jan 27, 2026
6284565
chore: generate
actions-user Jan 27, 2026
32ce0f4
tweak: add recommended topP/temp for kimi k2.5
rekram1-node Jan 27, 2026
bb63d16
Set temperature for kimi k2.5
fwang Jan 27, 2026
2649dca
Revert "ci: make tests passing a requirement pre-release"
fwang Jan 27, 2026
df8b23d
Revert "Set temperature for kimi k2.5"
fwang Jan 27, 2026
8206895
feat(app): color filetree change dots by diff kind
iamdavidhill Jan 27, 2026
8ee5376
feat(app): add filetree tooltips with diff labels
iamdavidhill Jan 27, 2026
2ca69ac
fix(app): shorten nav tooltips
iamdavidhill Jan 27, 2026
1fffbc6
fix(app): adjust titlebar left spacing
iamdavidhill Jan 27, 2026
d15201d
fix(app): delay nav tooltips
iamdavidhill Jan 27, 2026
18d6c21
fix(app): align filetree change styling
iamdavidhill Jan 27, 2026
00c7729
fix(app): set filetree padding to 6px
iamdavidhill Jan 27, 2026
f2bf620
fix(app): highlight selected change
iamdavidhill Jan 27, 2026
892113a
chore(app): show 5 highlights
adamdotdevin Jan 27, 2026
d7948c2
fix(app): auto-scroll
adamdotdevin Jan 27, 2026
1ebf63c
fix(app): don't connect to localhost through vpn
adamdotdevin Jan 27, 2026
842f17d
perf(app): better memory management
adamdotdevin Jan 27, 2026
acf0df1
chore: cleanup
adamdotdevin Jan 27, 2026
51edf68
feat(desktop): i18n for tauri side
adamdotdevin Jan 27, 2026
e5b1867
feat(desktop): tauri locales
adamdotdevin Jan 27, 2026
1d5ee3e
fix(app): not auto-navigating to last project
adamdotdevin Jan 27, 2026
95632d8
chore: update nix node_modules hashes
actions-user Jan 27, 2026
b8e7265
fix(tui): handle 4-5 codes too in c to copy logic
rekram1-node Jan 27, 2026
33d400c
fix(app): spinner color
adamdotdevin Jan 27, 2026
605e533
fix(app): file tree not always loading
adamdotdevin Jan 27, 2026
13b2587
test(app): fix outdated e2e test
adamdotdevin Jan 27, 2026
5c8580a
test(app): fix outdated e2e test
adamdotdevin Jan 27, 2026
d17ba84
fix(app): file tree not always loading
adamdotdevin Jan 27, 2026
df7f9ae
fix(app): terminal corruption
adamdotdevin Jan 27, 2026
15ffd3c
feat(app): add 'connect provider' button to the manage models dialog …
alexyaroshuk Jan 27, 2026
b4a9e1b
fix(app): auto-scroll
adamdotdevin Jan 27, 2026
898118b
feat: support headless authentication for chatgpt/codex (#10890)
rgodha24 Jan 28, 2026
d974186
fix(app): reintroduce review tab
adamdotdevin Jan 28, 2026
e3be4c9
release: v1.1.37
Jan 28, 2026
7988f52
feat(app): use opentui markdown component behind experimental flag (#…
remorses Jan 28, 2026
5f2a7c6
chore: generate
actions-user Jan 28, 2026
b73e024
docs: add Daytona OpenCode plugin to ecosystem (#10917)
jamesmurdza Jan 28, 2026
6da9fb8
chore: generate
actions-user Jan 28, 2026
aedd760
fix(cli): restore brand integrity of CLI wordmark (#10912)
mynameistito Jan 28, 2026
427cc3e
zen: kimi k2.5
fwang Jan 28, 2026
63f5669
fix(opencode): ensure unsub(PartUpdated) is always called in TaskTool…
goniz Jan 28, 2026
9a8da20
chore: generate
actions-user Jan 28, 2026
28e5557
ignore: adjust flag
rekram1-node Jan 28, 2026
026b3cc
bump plugin version
rekram1-node Jan 28, 2026
d76e144
ci
thdxr Jan 28, 2026
5585907
fix: ensure parallel tool calls dont double load AGENTS.md
rekram1-node Jan 28, 2026
3bb1077
release: v1.1.38
Jan 28, 2026
5a0b3ee
fix: ensure copilot plugin properly sets headers for new messages api
rekram1-node Jan 28, 2026
f97197b
chore: generate
actions-user Jan 28, 2026
6eb2bdd
release: v1.1.39
Jan 28, 2026
2131c3d
sync: merge upstream v1.1.39
shuv1337 Jan 28, 2026
1e8266b
Initial plan
Copilot Jan 28, 2026
cdfc6ca
chore: update last-synced-tag to v1.1.39
Copilot Jan 28, 2026
ad10f37
fix: update test preload cache version to match global/index.ts
shuv1337 Jan 29, 2026
64e239f
Merge pull request #326 from Latitudes-Dev/copilot/sub-pr-325
shuv1337 Jan 29, 2026
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
2 changes: 1 addition & 1 deletion .github/last-synced-tag
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.1.36
v1.1.39
83 changes: 83 additions & 0 deletions .github/workflows/close-stale-prs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Close stale PRs

on:
workflow_dispatch:
inputs:
dryRun:
description: "Log actions without closing PRs"
type: boolean
default: false
schedule:
- cron: "0 6 * * *"

permissions:
contents: read
issues: write
pull-requests: write

jobs:
close-stale-prs:
runs-on: ubuntu-latest
steps:
- name: Close inactive PRs
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const DAYS_INACTIVE = 60
const cutoff = new Date(Date.now() - DAYS_INACTIVE * 24 * 60 * 60 * 1000)
const { owner, repo } = context.repo
const dryRun = context.payload.inputs?.dryRun === "true"
const stalePrs = []

core.info(`Dry run mode: ${dryRun}`)

const prs = await github.paginate(github.rest.pulls.list, {
owner,
repo,
state: "open",
per_page: 100,
sort: "updated",
direction: "asc",
})

for (const pr of prs) {
const lastUpdated = new Date(pr.updated_at)
if (lastUpdated > cutoff) {
core.info(`PR ${pr.number} is fresh`)
continue
}

stalePrs.push(pr)
}

if (!stalePrs.length) {
core.info("No stale pull requests found.")
return
}

for (const pr of stalePrs) {
const issue_number = pr.number
const closeComment = `Closing this pull request because it has had no updates for more than ${DAYS_INACTIVE} days. If you plan to continue working on it, feel free to reopen or open a new PR.`

if (dryRun) {
core.info(`[dry-run] Would close PR #${issue_number} from ${pr.user.login}`)
continue
}

await github.rest.issues.createComment({
owner,
repo,
issue_number,
body: closeComment,
})

await github.rest.pulls.update({
owner,
repo,
pull_number: issue_number,
state: "closed",
})

core.info(`Closed PR #${issue_number} from ${pr.user.login}`)
}
2 changes: 1 addition & 1 deletion .opencode/command/ai-deps.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Please read @package.json and @packages/opencode/package.json.
Your job is to look into AI SDK dependencies, figure out if they have versions that can be upgraded (minor or patch versions ONLY no major ignore major changes).

I want a report of every dependency and the version that can be upgraded to.
What would be even better is if you can give me links to the changelog for each dependency, or at least some reference info so I can see what bugs were fixed or new features were added.
What would be even better is if you can give me brief summary of the changes for each dep and a link to the changelog for each dependency, or at least some reference info so I can see what bugs were fixed or new features were added.

Consider using subagents for each dep to save your context window.

Expand Down
42 changes: 42 additions & 0 deletions .opencode/command/learn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
description: Extract non-obvious learnings from session to AGENTS.md files to build codebase understanding
---

Analyze this session and extract non-obvious learnings to add to AGENTS.md files.

AGENTS.md files can exist at any directory level, not just the project root. When an agent reads a file, any AGENTS.md in parent directories are automatically loaded into the context of the tool read. Place learnings as close to the relevant code as possible:

- Project-wide learnings → root AGENTS.md
- Package/module-specific → packages/foo/AGENTS.md
- Feature-specific → src/auth/AGENTS.md

What counts as a learning (non-obvious discoveries only):

- Hidden relationships between files or modules
- Execution paths that differ from how code appears
- Non-obvious configuration, env vars, or flags
- Debugging breakthroughs when error messages were misleading
- API/tool quirks and workarounds
- Build/test commands not in README
- Architectural decisions and constraints
- Files that must change together

What NOT to include:

- Obvious facts from documentation
- Standard language/framework behavior
- Things already in an AGENTS.md
- Verbose explanations
- Session-specific details

Process:

1. Review session for discoveries, errors that took multiple attempts, unexpected connections
2. Determine scope - what directory does each learning apply to?
3. Read existing AGENTS.md files at relevant levels
4. Create or update AGENTS.md at the appropriate level
5. Keep entries to 1-3 lines per insight

After updating, summarize which AGENTS.md files were created/updated and how many learnings per file.

$ARGUMENTS
12 changes: 9 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ When merging upstream tags (e.g., v1.1.1):
- Avoid using the `any` type
- Prefer single word variable names where possible
- Use Bun APIs when possible, like `Bun.file()`
- Rely on type inference when possible; avoid explicit type annotations or interfaces unless necessary for exports or clarity

# Avoid let statements
### Avoid let statements

We don't like `let` statements, especially combined with if/else statements.
Prefer `const`.
Expand All @@ -56,7 +57,7 @@ if (condition) foo = 1
else foo = 2
```

# Avoid else statements
### Avoid else statements

Prefer early returns or using an `iife` to avoid else statements.

Expand All @@ -78,7 +79,7 @@ function foo() {
}
```

# Prefer single word naming
### Prefer single word naming

Try your best to find a single word name for your variables, functions, etc.
Only use multiple words if you cannot.
Expand All @@ -98,3 +99,8 @@ const fooBar = 1
const barBaz = 2
const bazFoo = 3
```

## Testing

You MUST avoid using `mocks` as much as possible.
Tests MUST test actual implementation, do not duplicate logic into a test.
133 changes: 133 additions & 0 deletions README.ar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
<p align="center">
<a href="https://opencode.ai">
<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">
</picture>
</a>
</p>
<p align="center">وكيل برمجة بالذكاء الاصطناعي مفتوح المصدر.</p>
<p align="center">
<a href="https://opencode.ai/discord"><img alt="Discord" src="https://img.shields.io/discord/1391832426048651334?style=flat-square&label=discord" /></a>
<a href="https://www.npmjs.com/package/opencode-ai"><img alt="npm" src="https://img.shields.io/npm/v/opencode-ai?style=flat-square" /></a>
<a href="https://github.com/anomalyco/opencode/actions/workflows/publish.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/anomalyco/opencode/publish.yml?style=flat-square&branch=dev" /></a>
</p>

<p align="center">
<a href="README.md">English</a> |
<a href="README.zh.md">简体中文</a> |
<a href="README.zht.md">繁體中文</a> |
<a href="README.ko.md">한국어</a> |
<a href="README.de.md">Deutsch</a> |
<a href="README.es.md">Español</a> |
<a href="README.fr.md">Français</a> |
<a href="README.it.md">Italiano</a> |
<a href="README.da.md">Dansk</a> |
<a href="README.ja.md">日本語</a> |
<a href="README.pl.md">Polski</a> |
<a href="README.ru.md">Русский</a> |
<a href="README.ar.md">العربية</a> |
<a href="README.no.md">Norsk</a> |
<a href="README.br.md">Português (Brasil)</a>
</p>

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

---

### التثبيت

```bash
# YOLO
curl -fsSL https://opencode.ai/install | bash

# مديري الحزم
npm i -g opencode-ai@latest # او bun/pnpm/yarn
scoop install opencode # Windows
choco install opencode # Windows
brew install anomalyco/tap/opencode # macOS و Linux (موصى به، دائما محدث)
brew install opencode # macOS و Linux (صيغة brew الرسمية، تحديث اقل)
paru -S opencode-bin # Arch Linux
mise use -g opencode # اي نظام
nix run nixpkgs#opencode # او github:anomalyco/opencode لاحدث فرع dev
```

> [!TIP]
> احذف الاصدارات الاقدم من 0.1.x قبل التثبيت.

### تطبيق سطح المكتب (BETA)

يتوفر OpenCode ايضا كتطبيق سطح مكتب. قم بالتنزيل مباشرة من [صفحة الاصدارات](https://github.com/anomalyco/opencode/releases) او من [opencode.ai/download](https://opencode.ai/download).

| المنصة | التنزيل |
| --------------------- | ------------------------------------- |
| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` |
| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` |
| Windows | `opencode-desktop-windows-x64.exe` |
| Linux | `.deb` او `.rpm` او AppImage |

```bash
# macOS (Homebrew)
brew install --cask opencode-desktop
# Windows (Scoop)
scoop bucket add extras; scoop install extras/opencode-desktop
```

#### مجلد التثبيت

يحترم سكربت التثبيت ترتيب الاولوية التالي لمسار التثبيت:

1. `$OPENCODE_INSTALL_DIR` - مجلد تثبيت مخصص
2. `$XDG_BIN_DIR` - مسار متوافق مع مواصفات XDG Base Directory
3. `$HOME/bin` - مجلد الثنائيات القياسي للمستخدم (ان وجد او امكن انشاؤه)
4. `$HOME/.opencode/bin` - المسار الافتراضي الاحتياطي

```bash
# امثلة
OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash
```

### Agents

يتضمن OpenCode وكيليْن (Agents) مدمجين يمكنك التبديل بينهما باستخدام زر `Tab`.

- **build** - الافتراضي، وكيل بصلاحيات كاملة لاعمال التطوير
- **plan** - وكيل للقراءة فقط للتحليل واستكشاف الكود
- يرفض تعديل الملفات افتراضيا
- يطلب الاذن قبل تشغيل اوامر bash
- مثالي لاستكشاف قواعد كود غير مألوفة او لتخطيط التغييرات

بالاضافة الى ذلك يوجد وكيل فرعي **general** للبحث المعقد والمهام متعددة الخطوات.
يستخدم داخليا ويمكن استدعاؤه بكتابة `@general` في الرسائل.

تعرف على المزيد حول [agents](https://opencode.ai/docs/agents).

### التوثيق

لمزيد من المعلومات حول كيفية ضبط OpenCode، [**راجع التوثيق**](https://opencode.ai/docs).

### المساهمة

اذا كنت مهتما بالمساهمة في OpenCode، يرجى قراءة [contributing docs](./CONTRIBUTING.md) قبل ارسال pull request.

### البناء فوق OpenCode

اذا كنت تعمل على مشروع مرتبط بـ OpenCode ويستخدم "opencode" كجزء من اسمه (مثل "opencode-dashboard" او "opencode-mobile")، يرجى اضافة ملاحظة في README توضح انه ليس مبنيا بواسطة فريق OpenCode ولا يرتبط بنا بأي شكل.

### FAQ

#### ما الفرق عن Claude Code؟

هو مشابه جدا لـ Claude Code من حيث القدرات. هذه هي الفروقات الاساسية:

- 100% مفتوح المصدر
- غير مقترن بمزود معين. نوصي بالنماذج التي نوفرها عبر [OpenCode Zen](https://opencode.ai/zen)؛ لكن يمكن استخدام OpenCode مع Claude او OpenAI او Google او حتى نماذج محلية. مع تطور النماذج ستتقلص الفجوات وستنخفض الاسعار، لذا من المهم ان يكون مستقلا عن المزود.
- دعم LSP جاهز للاستخدام
- تركيز على TUI. تم بناء OpenCode بواسطة مستخدمي neovim ومنشئي [terminal.shop](https://terminal.shop)؛ وسندفع حدود ما هو ممكن داخل الطرفية.
- معمارية عميل/خادم. على سبيل المثال، يمكن تشغيل OpenCode على جهازك بينما تقوده عن بعد من تطبيق جوال. هذا يعني ان واجهة TUI هي واحدة فقط من العملاء الممكنين.

---

**انضم الى مجتمعنا** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)
Loading