What Is OpenCode? ๐Ÿ”— **Source:** [What Is OpenCode?](https://www.youtube.com/watch?v=qbJhroATnj4) > [!note]+ Document Notes > tags: [ai-coding-agents, developer-tools, terminal-ui] > author: Scott (channel not specified) > source: YouTube > reference: https://www.youtube.com/watch?v=qbJhroATnj4 > date created: 2024-12-28 10:15 > > # ๐Ÿท๏ธ Title: What Is OpenCode? > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Try OpenCode with existing Copilot subscription โ€” free installation via curl/bun #ai-tools - [H2] Set up local agents.md files for project-specific configurations โ€” customize per repository #configuration - [H3] Explore MCP server integration for enhanced tooling โ€” awaiting OAuth support #integration ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [OpenCode Documentation](https://open.ai) - [AI SDK and Models.dev](https://models.dev) ## ๐Ÿ“ Summary - OpenCode is a flexible, open AI coding agent that works with multiple providers and allows custom API keys - It offers both CLI and terminal UI interfaces with extensive customization through agents, tools, and configurations - Users can leverage existing subscriptions (like Copilot) or use Zen mode for paid model access - The tool supports 75+ LLM providers, custom commands, themes, and plugin ecosystem - Key differentiator is provider independence and granular control over permissions and configurations ## ๐Ÿ“– Main Content OpenCode represents a new approach to AI coding assistants by prioritizing flexibility and user control over vendor lock-in. Unlike proprietary solutions tied to specific AI providers, OpenCode allows developers to bring their own API keys from various providers or leverage existing subscriptions like GitHub Copilot. The tool operates through both command-line interface and an interactive terminal UI, supporting multiple concurrent sessions for parallel agent workflows. The architecture centers around customizable agents (primary and sub-agents) that can be configured with specific permissions, models, and instructions. Configuration follows a hierarchical approach where global settings can be overridden by project-local configurations, enabling consistent defaults with project-specific customizations. The system uses markdown-based instruction files (agents.md) and supports custom commands with argument passing for deterministic behavior. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00](https://youtu.be/qbJhroATnj4?t=0) โ€” [H1] Introduction to OpenCode - Key idea: OpenCode is an open, flexible AI coding agent not tied to any single provider - Evidence: "You can bring your own AI provider. You can use your own API keys" #### โฑ๏ธ [01:15](https://youtu.be/qbJhroATnj4?t=75) โ€” [H2] Installation and Interface - Key idea: Simple installation via curl/bun with both CLI and terminal UI options - Evidence: "You just run a curl command or you can do bun whatever and this will install this" #### โฑ๏ธ [01:45](https://youtu.be/qbJhroATnj4?t=105) โ€” [H2] Multiple Sessions Support - Key idea: Parallel agent execution through multiple terminal sessions - Evidence: "Multiple sessions, so you can have multiple agents running in parallel" #### โฑ๏ธ [02:30](https://youtu.be/qbJhroATnj4?t=150) โ€” [H2] Model Integration Options - Key idea: Access to Copilot models or free models for testing - Evidence: "You can log into Copilot and get access to all of the Copilot models directly" #### โฑ๏ธ [04:15](https://youtu.be/qbJhroATnj4?t=255) โ€” [H3] Built-in Tools and Limitations - Key idea: Includes various tools but to-do functionality less interactive than Cursor - Evidence: "I've always found to-dos outside of something like Curo to be kind of useless" #### โฑ๏ธ [05:45](https://youtu.be/qbJhroATnj4?t=345) โ€” [H2] Agent Types and Custom Commands - Key idea: Build and plan agents available plus custom agent creation - Evidence: "There's also a plan agent built in or you can customize your own" #### โฑ๏ธ [07:00](https://youtu.be/qbJhroATnj4?t=420) โ€” [H2] CLI Capabilities - Key idea: One-off commands possible via CLI, suitable for GitHub Actions - Evidence: "You can use the CLI just by running open code run" #### โฑ๏ธ [08:15](https://youtu.be/qbJhroATnj4?t=495) โ€” [H2] Zen Mode Pricing - Key idea: Paid solution for users wanting single payment point - Evidence: "Zen is basically you pay open code and then you get access to the models" #### โฑ๏ธ [09:30](https://youtu.be/qbJhroATnj4?t=570) โ€” [H1] Configuration Flexibility - Key idea: Global and local configuration support with TypeScript custom tools - Evidence: "You can have config files that exist globally down to your root project" #### โฑ๏ธ [11:00](https://youtu.be/qbJhroATnj4?t=660) โ€” [H2] Agents.md and Custom Instructions - Key idea: Hierarchical instruction system from global to local configurations - Evidence: "There's a global agents.mmd file in config open code agents" #### โฑ๏ธ [12:45](https://youtu.be/qbJhroATnj4?t=765) โ€” [H2] Sub-agents and Orchestration - Key idea: Specialized sub-agents can be invoked by primary agents for specific tasks - Evidence: "Sub agents are specialized agents that primary agents can invoke" #### โฑ๏ธ [14:30](https://youtu.be/qbJhroATnj4?t=870) โ€” [H2] Model Provider Support - Key idea: 75+ LLM providers supported through AI SDK and models.dev - Evidence: "Support for 75 plus uh LLM providers basically giving you access to most of the stuff" #### โฑ๏ธ [16:00](https://youtu.be/qbJhroATnj4?t=960) โ€” [H3] Themes and Customization - Key idea: Theme support for visual customization with live preview - Evidence: "You can just change your theme. Look at that. You can even get a nice little preview" #### โฑ๏ธ [17:15](https://youtu.be/qbJhroATnj4?t=1035) โ€” [H2] Custom Commands with Arguments - Key idea: Markdown-based commands with deterministic argument passing - Evidence: "You can use dollar sign the number for the number of the argument" #### โฑ๏ธ [19:30](https://youtu.be/qbJhroATnj4?t=1170) โ€” [H2] Permissions and Safety Features - Key idea: Granular permissions including doom loop prevention - Evidence: "Approve whether or not a doom loop occurs where the same tool is called three times in a row" #### โฑ๏ธ [21:45](https://youtu.be/qbJhroATnj4?t=1305) โ€” [H1] Explicit Agent Invocation - Key idea: Deterministic agent calling with @ syntax vs hoping AI chooses correctly - Evidence: "You can actually explicitly at an agent and like if I have this quality reviewer agent" #### โฑ๏ธ [23:00](https://youtu.be/qbJhroATnj4?t=1380) โ€” [H2] Plugin Ecosystem - Key idea: Plugin support including Claude Code skills integration - Evidence: "Here's a plugin that someone created that matches claude code skills" ## ๐Ÿ“š References - [OpenCode Project](https://open.ai) - [AI SDK Documentation](https://sdk.vercel.ai) - [Models.dev Provider Directory](https://models.dev) ## ๐Ÿ—ฃ๏ธ Paraphrase - OpenCode differentiates itself as a provider-agnostic AI coding assistant that prioritizes user control and customization over vendor lock-in - The tool offers comprehensive configuration options from global defaults to project-specific overrides, enabling consistent workflows across different codebases - Unlike other AI coding tools, OpenCode provides explicit control mechanisms like direct agent invocation and argument passing for more deterministic behavior ## ๐Ÿ“ฐ Newsletter **OpenCode: The Flexible AI Coding Assistant That Puts You In Control** Tired of being locked into a single AI provider for your coding assistant? OpenCode might be the solution you've been waiting for. This open-source tool lets you bring your own API keys from 75+ providers or leverage existing subscriptions like GitHub Copilot. What makes OpenCode special is its flexibility. You can run it as a CLI tool for one-off tasks or use the interactive terminal UI for complex multi-session workflows. The hierarchical configuration system means you can set global defaults while customizing behavior for specific projects. Key benefits include explicit agent control (no more hoping the AI picks the right tool), custom command creation with argument passing, and comprehensive permission controls. The growing plugin ecosystem, including Claude Code skills integration, makes it even more powerful. Resources: [OpenCode Documentation](https://open.ai), [AI SDK Guide](https://sdk.vercel.ai), [Models.dev Directory](https://models.dev) ## โœ… Action Items #### DevRel - Developer advocacy: Demo OpenCode's provider flexibility at conferences, compare with locked-in solutions - Education: Create workshops on custom agent configuration and MCP server integration - Developer experience: Document best practices for hierarchical configuration management - Developer marketing: Highlight cost savings from using existing subscriptions vs new tool purchases - Community management: Foster plugin development community, maintain compatibility showcase #### OSPO - Policy & Governance: Evaluate OpenCode's open-source model vs proprietary AI coding tools - License Compliance: Review plugin ecosystem licensing, ensure compliance with corporate policies - Security Management: Assess API key management practices, evaluate permission controls - Software Inventory: Catalog AI coding tools, track OpenCode adoption metrics - Developer Support: Provide training on secure configuration management - Community Engagement: Contribute to OpenCode ecosystem, sponsor plugin development - Strategic Alignment: Align AI coding tool selection with open-source strategy #### Community - Maintainers: Create OpenCode configurations for common project types - Contributors: Develop plugins for WordPress-specific workflows - Sponsors: Fund development of accessibility-focused coding agents - Ecosystem: Coordinate OpenCode integration with existing developer toolchains #### WordPress - Core: Explore OpenCode for automated code migration tasks (like Svelte 5 syntax updates) - Core Performance: Use OpenCode for performance optimization suggestions and implementations - Core AI: Integrate OpenCode agents into WordPress development workflows - Playground: Implement OpenCode for interactive coding tutorials - Community: Develop WordPress-specific agents for common development tasks - Training: Create lesson plans incorporating AI-assisted coding best practices - Documentation: Use OpenCode for automated documentation generation and updates - CLI: Explore integration between WP-CLI and OpenCode for enhanced scaffolding - Meta: Implement OpenCode agents for .org infrastructure maintenance tasks #### The WPCC - Programs: Fellowship program for developing WordPress-specific OpenCode plugins - Projects: Governance documentation for AI tool usage in open source projects - Funding: Microgrants for accessibility-focused coding agent development #### FAIR - Technical independence: Evaluate provider-agnostic AI tools vs vendor lock-in solutions - Policies: Develop guidelines for AI coding assistant selection and usage - Governance artifacts: Create charters for responsible AI tool adoption in open source ## ๐Ÿงช Hypotheses - Developer teams using OpenCode with existing AI subscriptions achieve 30-50% cost savings compared to adopting new AI coding platforms - Projects implementing hierarchical OpenCode configurations show improved consistency in AI-generated code quality across team members - Organizations using explicit agent invocation patterns experience fewer unintended code modifications compared to implicit AI tool usage - Plugin ecosystem adoption correlates with reduced vendor lock-in concerns among enterprise development teams ### ๐Ÿ“Š Methodology - Cost analysis comparing OpenCode + existing subscriptions vs new platform adoption - Code quality metrics analysis across teams using global vs local OpenCode configurations - Error rate tracking for explicit vs implicit AI agent invocation patterns - Survey data on vendor lock-in concerns pre/post OpenCode adoption ### โ“ Questions - How does OpenCode's plugin ecosystem compare to established AI coding platforms in terms of functionality coverage? - What are the long-term maintenance costs of custom agent configurations vs using default AI coding tool settings? - How do explicit control mechanisms in OpenCode affect developer productivity compared to more automated approaches? ### ๐Ÿ”ฎ Future Research - Comparative analysis of AI coding tool flexibility vs ease-of-use trade-offs - Impact study of provider-agnostic AI tools on organizational technology strategy - Investigation of optimal configuration patterns for different project types ### ๐Ÿ’ก Implications - Practice: Developers can maintain existing AI subscriptions while gaining flexibility through OpenCode's provider-agnostic approach - Policy: Organizations need governance frameworks for AI coding tool selection that balance flexibility with standardization - Security: Granular permission controls enable safer AI code generation in enterprise environments - Education: Training programs should emphasize explicit control patterns over implicit AI tool usage - Funding: Investment in provider-agnostic tools may provide better long-term ROI than vendor-specific solutions ### ๐Ÿง  Learning Styles Assessment Reading level estimate: Flesch-Kincaid Grade Level 9-10 #### ๐Ÿ‘€ Visual learners - Present: Terminal UI screenshots, theme previews, configuration examples - Improve: Architecture diagrams showing agent hierarchy, visual configuration flowcharts #### ๐Ÿ”Š Aural learners - Present: Video walkthrough with narration explaining each feature - Improve: Audio summary of key configuration concepts, spoken examples #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Clear definitions of agents, sub-agents, and MCP concepts - Improve: Analogies comparing OpenCode to familiar development tools #### ๐Ÿงฉ Kinesthetic learners - Present: Step-by-step installation guide, hands-on configuration examples - Improve: Interactive configuration generator, practice exercises #### ๐Ÿง  Logical learners - Present: Hierarchical configuration logic, permission matrix - Improve: Decision trees for choosing configuration options, cost comparison tables #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Plugin ecosystem discussion, community contributions - Improve: Collaborative configuration templates, peer review guides #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Self-guided configuration walkthrough - Improve: Personal reflection prompts on AI tool preferences, individual assessment checklists #### ๐ŸŒฟ Naturalistic learners - Present: Ecosystem approach to plugin development - Improve: Tool lifecycle thinking, sustainable AI tool selection strategies ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Clear heading hierarchy in documentation, descriptive command names - Improve: Alt text for terminal screenshots, aria labels for interactive elements #### Keyboard navigation - Present: Terminal UI fully keyboard accessible, command shortcuts available - Improve: Skip navigation for documentation sections, focus indicators #### Contrast and readability - Present: Terminal themes with customizable colors - Improve: High contrast theme options, readable font size defaults #### Text resizing and reflow - Present: Terminal UI scales with system fonts - Improve: Documentation responsive design verification #### Media and captions - Present: Video demonstration of features - Improve: Closed captions, transcript availability #### Forms and interactions - Present: Clear command syntax, error messages - Improve: Input validation feedback, accessible configuration forms #### Standards reference - Configuration UI should meet WCAG 2.2 AA standards for interactive elements ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: Global developer community focus - Improve: Multi-language documentation, international use case examples #### Inclusive language - Present: Technical terms clearly defined - Improve: Plain language summaries, avoid cultural idioms --- ## Full Transcript [00:00] What is open code? Well, open code is<br>[00:03] the AI coding agent that is open. It is<br>[00:07] flexible. It is not tied to any one<br>[00:10] provider. You can bring your own AI<br>[00:13] provider. You can use your own API keys.<br>[00:16] You can use pretty much anything in this<br>[00:18] thing. And you can customize it to your<br>[00:20] heart's content via custom tools, custom<br>[00:23] agents, and all that stuff. I've been<br>[00:26] using Open Code quite a bit for a long<br>[00:28] time now and really love several core<br>[00:31] aspects of it. So, I'm going to tell you<br>[00:33] a little bit about what the heck this<br>[00:35] thing is and why you should give it a<br>[00:37] try. It is free to use. So, uh there is<br>[00:40] a paid thing which we'll talk about that<br>[00:42] as well. But, uh to use this, you just<br>[00:44] run a curl command or you can do bun<br>[00:46] whatever and this will install this as<br>[00:48] an application you can run as both a CLI<br>[00:51] or inside of a terminal UI. And the way<br>[00:55] this works, again, it has a really nice<br>[00:58] native terminal UI. Uh, multiple<br>[01:01] sessions, so you can have multiple<br>[01:02] agents running in parallel. All you got<br>[01:04] to do is just open up a new, uh,<br>[01:05] terminal tab, open code, and get going.<br>[01:08] You can, uh, save and come back to<br>[01:12] various sessions. You can implement<br>[01:14] commands and run those commands that<br>[01:16] then trigger agents and do all that good<br>[01:18] stuff. So, I'll show you a little bit of<br>[01:20] this stuff in action, but it's a really<br>[01:22] great tool. And the one thing I really<br>[01:24] like about it is if you're paying for<br>[01:26] something like Copilot already, uh you<br>[01:29] can log into Copilot and get access to<br>[01:32] all of the Copilot models directly in<br>[01:35] open code or bring your own API keys<br>[01:38] from any of the various providers or<br>[01:41] they also often have a free uh model<br>[01:44] available for testing at any given<br>[01:47] point. Like for instance, if we head<br>[01:49] into open code and I I do models right<br>[01:52] now, you can see that right now there<br>[01:54] are a a few free ones. Now, these might<br>[01:57] not be the best models, but if you're<br>[01:59] just wanting to give this thing a try,<br>[02:01] uh I do have a Copilot subscription. So,<br>[02:04] for me, from Copilot, I have access to<br>[02:06] all of these different models that I can<br>[02:08] use myself or again, like I said, you<br>[02:10] can uh bring in your API keys for<br>[02:13] various other things. Now the open code<br>[02:15] interface and the way that it works like<br>[02:17] if I'm in a site here and I say let's<br>[02:20] update to uh spelt<br>[02:25] 5 syntax everywhere. Now now this type<br>[02:29] of command is obviously only going to be<br>[02:31] as effective as the model the tools that<br>[02:33] you're giving it especially with spelt 5<br>[02:35] stuff. Uh but you can see there's a lot<br>[02:37] of nice things. There's a lot of<br>[02:39] built-in tools to this where we have<br>[02:41] things like uh to-dos. Now, I've always<br>[02:44] found to-dos outside of something like<br>[02:46] Curo to be kind of useless. I mean, I'm<br>[02:50] sure it's not useless for the AI to be<br>[02:52] able to go through and do these things<br>[02:54] itemized, but like I like a to-do list<br>[02:56] that's a little bit more interactive<br>[02:58] where I'm able to uh tell it exactly<br>[03:01] which to-do and which variety. I think<br>[03:03] Hero really nailed that, even if their<br>[03:05] their spec flow is a little heavy-handed<br>[03:07] sometimes. But as you can see, it is<br>[03:10] going through some of this stuff and it<br>[03:12] is going to be updating it. Now, it it<br>[03:15] does actually seem like with Sonnet 4.5,<br>[03:18] it's doing a decent job of actually<br>[03:20] pulling out spelt 5 syntax. You know,<br>[03:23] one thing it's not doing here is it's<br>[03:25] not prompting me to uh accept or do this<br>[03:28] or that. But this is just with the<br>[03:30] normal build agent. Now, in addition to<br>[03:33] a build agent, there's also a plan agent<br>[03:36] built in or you can customize your own<br>[03:39] and just hit tab to change the various<br>[03:42] agents that you have available. And<br>[03:44] likewise, when you run custom commands,<br>[03:46] you just hit forward slash and your<br>[03:48] custom commands are available as well as<br>[03:51] the commands that are baked into<br>[03:54] open code itself.<br>[03:56] So, let's take a look at the docs really<br>[03:58] quick. Again, you can uh get going with<br>[04:01] most providers here. I mean, the<br>[04:02] directory is huge. It all is easy to set<br>[04:05] up. Um, again, the terminal UI is nice.<br>[04:09] As you just saw, there's a number of<br>[04:11] extra built-in tools here like details,<br>[04:13] editor, exit, export, help, uh,<br>[04:17] initialize to create agents.md, which<br>[04:20] this does use an agents.md for their<br>[04:23] rules. So things are nice and<br>[04:25] standardized and normal as you might<br>[04:27] expect them to be. Uh you can always<br>[04:29] start a new session with new. The CLI is<br>[04:33] actually really nice for one-off things.<br>[04:35] You can use the CLI just by running open<br>[04:37] code run. And what's cool about this is<br>[04:40] that means you can actually use this in<br>[04:42] things like GitHub actions if that's the<br>[04:44] type of thing you'd want to do, right?<br>[04:46] Like maybe analyze my recent pull<br>[04:48] request and generate a change set. Um<br>[04:51] there's a number of things you can do<br>[04:52] here with the CLI that are super nice.<br>[04:54] Now you can also use it inside of things<br>[04:57] like VS Code or cursor um just by<br>[05:00] running open code in the terminal. It's<br>[05:01] a terminal UI, right? You don't have to<br>[05:03] have something special for that. Now<br>[05:05] there's also the Zen mode. Now, Zen is a<br>[05:09] paid solution and Zen is basically you<br>[05:12] pay open code and then you get access to<br>[05:15] the models that are within Zed that are<br>[05:18] within Zen and you can see what these<br>[05:20] models are. You can see their pricing.<br>[05:23] Um, it's interesting. I personally,<br>[05:25] since I do have a co-pilot subscription,<br>[05:27] I haven't looked into using Zen. But for<br>[05:31] people who only want to pay for one<br>[05:32] thing, one place, and you're like all<br>[05:34] bought in on Open Code, it's a nice<br>[05:36] system for them to have to just be able<br>[05:38] to have it be like no stress, sign up,<br>[05:41] just use the thing. Now, as far as<br>[05:44] configuring this thing, you can add your<br>[05:45] own tools, whether they are MCP servers<br>[05:48] or fully custom tools that are just<br>[05:50] TypeScript code. um it's really nice and<br>[05:53] you you're basically just defining<br>[05:55] things within a open code JSON. Now the<br>[05:58] one thing I really love about open code<br>[06:00] is that sometimes these other uh CLI<br>[06:04] sometimes these other terminal UI things<br>[06:07] or AI systems in general they have like<br>[06:09] one very specific um provider specific<br>[06:13] way of doing things where with open code<br>[06:16] you can configure a lot of things and<br>[06:19] you can have uh config files that exist<br>[06:22] globally down to your root project that<br>[06:26] have different configurations. So you<br>[06:28] can have your default configurations,<br>[06:30] you can have your local project<br>[06:32] configurations, which is really great<br>[06:34] for setting things up once globally and<br>[06:36] then dialing in locally where you need<br>[06:39] to. Now also as far as<br>[06:42] rules go there is the agents.md file but<br>[06:46] just like most things in open code you<br>[06:48] can actually customize this as well.<br>[06:54] There's a global agents.mmd file in<br>[06:57] config open code agents. However, we'll<br>[06:59] look for the local one then look for the<br>[07:02] global one which is really nice to have.<br>[07:04] You can also specify custom instructions<br>[07:06] via um an array here of various<br>[07:09] instruction files and then you can even<br>[07:11] glob every single thing inside of a<br>[07:14] directory. Now, obviously this is<br>[07:15] something you need to be careful with<br>[07:17] because if you add too many instruction<br>[07:18] files, like if you glob a whole bunch of<br>[07:20] MD files in on every single<br>[07:24] every single command,<br>[07:26] your context is going to bloat up really<br>[07:28] big and you're going to get terrible<br>[07:29] results out of the LLM. But it's really<br>[07:32] great that it gives you the option of<br>[07:33] setting up your own systems. And as<br>[07:35] somebody who likes to do that, I I would<br>[07:37] not setting up my own systems to the<br>[07:39] point where it was probably detrimental<br>[07:40] to me. Um, you can also have custom<br>[07:42] agents and sub agents. Sub agents are<br>[07:45] specialized agents that primary agents<br>[07:48] can invoke with specific tasks. So<br>[07:50] therefore, you can have your main agent<br>[07:52] that that is like an orchestration that<br>[07:54] goes off and uses sub agents to do<br>[07:56] various things. And likewise, I already<br>[07:58] showed you the two built-in primary<br>[08:00] agents. There's the plan mode and build<br>[08:02] mode, but again, you can specify all of<br>[08:05] your own<br>[08:07] like a spelt pro that um always wants to<br>[08:10] use the spelt MCP or has specific<br>[08:12] instructions for your specific uh way of<br>[08:16] working. And these things are great<br>[08:17] because you can give the agents uh<br>[08:20] individual permissions like you can only<br>[08:23] write, you can only read, you can run<br>[08:25] bash commands or this or that. Um it's<br>[08:28] great. You can have access to this. You<br>[08:30] can use this specific model even if you<br>[08:32] want. You can control the temperature.<br>[08:35] You can dial it in. Open code is really<br>[08:37] a tinkerer's dream in many regards<br>[08:39] because if you nerd out on some of this<br>[08:42] stuff, you can get in depth with it.<br>[08:43] Ultimately though, sometimes that can<br>[08:45] lead to just uh tweaking knobs on a<br>[08:47] sinking ship, right? So, it is it is<br>[08:50] like uh it's great that they give you<br>[08:52] those options though. As far as models<br>[08:54] go, Open Code uses the AI SDK and<br>[08:56] models.dev. support for 75 plus uh LLM<br>[09:00] providers basically giving you access to<br>[09:02] most of the stuff most of the time and<br>[09:04] they're really quick on getting all of<br>[09:06] the new stuff into Open Code so you<br>[09:09] never are wondering what's going to like<br>[09:11] am I going to have access to the latest<br>[09:13] Gemini or whatever. There's themes which<br>[09:15] are great because man I love I love<br>[09:18] adding themes, right? You can just<br>[09:19] change your theme. Look at that. You can<br>[09:21] even get a nice little preview. Uh, for<br>[09:23] somebody like me,<br>[09:25] I just like I like having that. I like<br>[09:28] having that. As dumb as it is, it it<br>[09:31] does nothing other than just makes me<br>[09:33] happy working uh with themes. So, that's<br>[09:36] great. Uh, key bindings, you can specify<br>[09:38] your own custom key bindings if you<br>[09:40] would like. That's great. Uh, again,<br>[09:42] Open Code is very customizable, and I<br>[09:44] love that commands are super useful.<br>[09:46] There's a number of built-in commands,<br>[09:47] but you can specify your own. Like let's<br>[09:50] say you want to have a command that just<br>[09:52] runs your your linting and then fixes<br>[09:55] things. You could just forward slash<br>[09:58] lint and fix and then uh that command is<br>[10:00] basically an MD file where you can<br>[10:02] specify some custom context for anything<br>[10:06] and it's going to be basically the<br>[10:07] instructions that the command should do.<br>[10:09] Now again these commands are not like<br>[10:12] JavaScript code. These are markdown but<br>[10:14] you can use arguments which I actually<br>[10:17] really like. I found this to be<br>[10:18] troublesome in many other applications.<br>[10:20] But if you want arguments, you can use<br>[10:22] dollar sign the number for the number of<br>[10:25] the argument, which makes command super<br>[10:27] useful in a way where you can actually<br>[10:29] target things. When when we're working<br>[10:31] with LLM, so much of this stuff is<br>[10:32] nondeterministic that like, oh, it's<br>[10:35] really nice to be able to pass some<br>[10:36] arguments and make sure it knows what<br>[10:38] it's doing. Uh, again, I really end up<br>[10:40] uh really liking this. The docs are<br>[10:42] great for this, too. By the way, there's<br>[10:43] also built-in formatterers so that uh<br>[10:46] your code can get formatted after<br>[10:47] changes. I yeah, I I haven't really uh<br>[10:50] used this too much because I'm I'm<br>[10:52] mostly like really in my code already.<br>[10:54] So, the formatting is getting applied<br>[10:56] while I'm I'm not usually just like<br>[10:58] letting the LLM go to town on my code.<br>[11:00] Um permissions. You can give detailed<br>[11:02] permissions to all kinds of things from<br>[11:04] web fetch. Oh, doom loop is a uh new<br>[11:07] one. approve whether or not a doom loop<br>[11:10] occurs where the same tool is called<br>[11:11] three times in a row. I haven't actually<br>[11:13] seen this when it was added. But that's<br>[11:15] really neat that it's there. You can<br>[11:17] also have ask permissions for anytime a<br>[11:21] file is changed or edited or anything.<br>[11:24] So the permissions can be<br>[11:28] ask, allow, or deny. And I actually<br>[11:32] probably recommend always leaving it on<br>[11:34] ask for everything because I kind I I I<br>[11:37] kind of just like need to know what it's<br>[11:40] doing, right? I needed to ask me if it<br>[11:41] should do it. Uh there's also support<br>[11:44] for LSP servers, MCP obviously and ACP.<br>[11:48] Uh MCP probably being the one that you<br>[11:51] use the most, but uh getting your MCP<br>[11:53] servers configured is just a matter of a<br>[11:56] very simple JSON configuration. It does<br>[12:00] not support OOTH for MCP, but it says<br>[12:02] that it will soon. So, that would be<br>[12:04] nice when that's here. One thing I<br>[12:06] actually didn't mention about agents and<br>[12:08] sub agents that I really like, as<br>[12:09] opposed to something like Claude Code<br>[12:11] where you're just like, "Hey, please use<br>[12:13] this agent and hope it does." You can<br>[12:15] actually explicitly at an agent and like<br>[12:18] if I have this quality reviewer agent, I<br>[12:21] can specifically at it and it's going to<br>[12:24] uh always invoke that agent without<br>[12:26] having to guess. That is something that<br>[12:28] I feel like uh cloud code is certainly<br>[12:31] lacking is some of these explicit<br>[12:33] commands, explicit arguments, these<br>[12:35] types of things where uh even though<br>[12:37] they do work most of the time, you still<br>[12:38] feel like you're guessing a little bit.<br>[12:40] I like the deterministic nature of an at<br>[12:45] or an argument. And again, there's<br>[12:47] support for custom tools which can be<br>[12:50] just straight up JavaScript that is<br>[12:53] running and therefore you don't have to<br>[12:56] have it be done by an LLM and tools can<br>[12:59] be used to accomplish things all kinds<br>[13:01] of things return data in a deterministic<br>[13:04] way. Now what's cool about um open code<br>[13:07] also is that there are plugins and there<br>[13:09] is plug-in support. In fact, like<br>[13:11] recently people were talking about, you<br>[13:13] know, Claude skills and and here's a<br>[13:16] plugin that someone created that matches<br>[13:19] claude code skills. So you can even sync<br>[13:22] skills and use claude code skills<br>[13:24] directly in open code. So having the<br>[13:26] ability to install things to augment and<br>[13:29] work with uh this system to me is one of<br>[13:32] the key features of open code. So, I<br>[13:35] recommend if you're using this stuff, if<br>[13:37] you like clawed code, if you like any of<br>[13:39] these uh copilot CLI tools or any of<br>[13:42] this stuff, I would highly recommend<br>[13:44] checking out Open Code because I do<br>[13:47] really like it and because besides being<br>[13:50] well thought of, I think it is very<br>[13:52] developer friendly. It uh allows you to<br>[13:56] actually be in control a little bit more<br>[13:59] and it feels way less loose uh than some<br>[14:03] of the things I've experienced in some<br>[14:04] others. And the configuration options<br>[14:06] are pretty much endless and uh really<br>[14:09] great. So check it out. Open.ai.<br>[14:12] If you hate this stuff, that's cool. If<br>[14:14] you love this stuff, give Open Code a<br>[14:16] try. All that. Either way, it's a fun<br>[14:18] project. Something to be aware of. This<br>[14:20] is Scott. I'll see you in the next one. <!-- deep-read:sections end -->