diff --git a/AGENTS.md b/AGENTS.md index 507cfea53..36a37713b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,3 +14,34 @@ ## Debugging - To test opencode in the `packages/opencode` directory you can run `bun dev` + +## Tool Calling + +- ALWAYS USE PARALLEL TOOLS WHEN APPLICABLE. Here is an example illustrating how to execute 3 parallel file reads in this chat environnement: + +json +{ + "recipient_name": "multi_tool_use.parallel", + "parameters": { + "tool_uses": [ + { + "recipient_name": "functions.read", + "parameters": { + "filePath": "path/to/file.tsx" + } + }, + { + "recipient_name": "functions.read", + "parameters": { + "filePath": "path/to/file.ts" + } + }, + { + "recipient_name": "functions.read", + "parameters": { + "filePath": "path/to/file.md" + } + } + ] + } +} diff --git a/README.md b/README.md index e1a9974f3..6e91d3ccb 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,20 @@
-AI coding agent, built for the terminal.
+The AI coding agent built for the terminal.
-[](https://opencode.ai) +[](https://opencode.ai) --- @@ -50,11 +50,11 @@ XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash ### Documentation -For more info on how to configure opencode [**head over to our docs**](https://opencode.ai/docs). +For more info on how to configure OpenCode [**head over to our docs**](https://opencode.ai/docs). ### Contributing -opencode is an opinionated tool so any fundamental feature needs to go through a +OpenCode is an opinionated tool so any fundamental feature needs to go through a design process with the core team. > [!IMPORTANT] @@ -74,7 +74,7 @@ Take a look at the git history to see what kind of PRs we end up merging. > [!NOTE] > If you do not follow the above guidelines we might close your PR. -To run opencode locally you need. +To run OpenCode locally you need. - Bun - Golang 1.24.x @@ -88,7 +88,7 @@ $ bun dev #### Development Notes -**API Client**: After making changes to the TypeScript API endpoints in `packages/opencode/src/server/server.ts`, you will need the opencode team to generate a new stainless sdk for the clients. +**API Client**: After making changes to the TypeScript API endpoints in `packages/opencode/src/server/server.ts`, you will need the OpenCode team to generate a new stainless sdk for the clients. ### FAQ @@ -97,9 +97,9 @@ $ bun dev It's very similar to Claude Code in terms of capability. Here are the key differences: - 100% open source -- Not coupled to any provider. Although Anthropic is recommended, opencode can be used with OpenAI, Google or even local models. As models evolve the gaps between them will close and pricing will drop so being provider-agnostic is important. -- A focus on TUI. opencode is built by neovim users and the creators of [terminal.shop](https://terminal.shop); we are going to push the limits of what's possible in the terminal. -- A client/server architecture. This for example can allow opencode to run on your computer, while you can drive it remotely from a mobile app. Meaning that the TUI frontend is just one of the possible clients. +- Not coupled to any provider. Although Anthropic is recommended, OpenCode can be used with OpenAI, Google or even local models. As models evolve the gaps between them will close and pricing will drop so being provider-agnostic is important. +- A focus on TUI. OpenCode is built by neovim users and the creators of [terminal.shop](https://terminal.shop); we are going to push the limits of what's possible in the terminal. +- A client/server architecture. This for example can allow OpenCode to run on your computer, while you can drive it remotely from a mobile app. Meaning that the TUI frontend is just one of the possible clients. #### What's the other repo? diff --git a/STATS.md b/STATS.md index ffcd1a17e..002e391c3 100644 --- a/STATS.md +++ b/STATS.md @@ -96,3 +96,4 @@ | 2025-09-29 | 419,919 (+5,009) | 328,033 (+5,511) | 747,952 (+10,520) | | 2025-09-30 | 427,991 (+8,072) | 336,472 (+8,439) | 764,463 (+16,511) | | 2025-10-01 | 433,591 (+5,600) | 341,742 (+5,270) | 775,333 (+10,870) | +| 2025-10-02 | 440,852 (+7,261) | 348,099 (+6,357) | 788,951 (+13,618) | diff --git a/bun.lock b/bun.lock index 26ce83501..7306c8c19 100644 --- a/bun.lock +++ b/bun.lock @@ -48,11 +48,9 @@ "name": "@opencode/console-app", "dependencies": { "@ibm/plex": "6.4.1", - "@jsx-email/render": "1.1.1", "@kobalte/core": "catalog:", "@openauthjs/openauth": "catalog:", "@opencode/console-core": "workspace:*", - "@opencode/console-mail": "workspace:*", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.0", "@solidjs/start": "^1.1.0", @@ -66,6 +64,8 @@ "version": "0.14.0", "dependencies": { "@aws-sdk/client-sts": "3.782.0", + "@jsx-email/render": "1.1.1", + "@opencode/console-mail": "workspace:*", "@opencode/console-resource": "workspace:*", "@planetscale/database": "1.19.0", "aws4fetch": "1.0.20", diff --git a/packages/app/src/components/code.tsx b/packages/app/src/components/code.tsx index 63f527c46..40a40aa9a 100644 --- a/packages/app/src/components/code.tsx +++ b/packages/app/src/components/code.tsx @@ -1,8 +1,11 @@ import { bundledLanguages, type BundledLanguage, type ShikiTransformer } from "shiki" import { splitProps, type ComponentProps, createEffect, onMount, onCleanup, createMemo, createResource } from "solid-js" import { useLocal, useShiki } from "@/context" +import type { TextSelection } from "@/context/local" import { getFileExtension, getNodeOffsetInLine, getSelectionInContainer } from "@/utils" +type DefinedSelection = Exclude
+ })()}
+
+
)}
+
+
+
- })()}
-