|
| https://realpython.com/ |
| Start Here | https://realpython.com/start-here/ |
|
Learn Python
| https://realpython.com/lessons/understanding-opencode-differentiators/ |
| Your Learning Plan →Your personalized Python learning plan | https://realpython.com/account/learning-plan/ |
| Python Tutorials →In-depth articles and video courses | https://realpython.com/search?kind=article&kind=course&order=newest&_from=nav_library |
| Learning Paths →Guided study plans for accelerated learning | https://realpython.com/learning-paths/ |
| Quizzes & Exercises →Check your learning progress | https://realpython.com/search?kind=exercise&kind=quiz&_from=nav_library |
| Browse Topics →Focus on a specific area or skill level | https://realpython.com/tutorials/all/ |
| Reference →Concise definitions for common Python terms | https://realpython.com/ref/ |
| Mentor AI →NewYour personal Python mentor | https://realpython.com/mentor/ |
| Office Hours →Live Q&A calls with Python experts | https://realpython.com/office-hours/ |
| Community Chat →Learn with other Pythonistas | https://realpython.com/community/ |
| Live Courses →Live, instructor-led Python courses | https://realpython.com/live/ |
| Books →Round out your knowledge and learn offline | https://realpython.com/products/books/ |
| Podcast →Hear what’s new in the world of Python | https://realpython.com/podcasts/rpp/ |
| Unlock All Content and Become a Python Expert →Get unlimited access to all Real Python has to offer | https://realpython.com/account/join/?from=navbar_learn |
| Unlock All Content →Become a Python Expert | https://realpython.com/account/join/?from=navbar_learn |
|
More
| https://realpython.com/lessons/understanding-opencode-differentiators/ |
| Learner Stories | https://realpython.com/learner-stories/ |
| Python Newsletter | https://realpython.com/newsletter/ |
| Python Job Board | https://www.pythonjobshq.com |
| Meet the Team | https://realpython.com/team/ |
| Become a Contributor | https://realpython.com/jobs/ |
| Search | https://realpython.com/search |
| https://realpython.com/search |
| Join | https://realpython.com/account/join/ |
| Sign‑In | https://realpython.com/account/login/?intent=navbar&next=%2Flessons%2Funderstanding-opencode-differentiators%2F |
| Unlock This Lesson | https://realpython.com/account/join/?utm_source=rp_lesson&utm_content=coding-with-opencode-ai |
| Unlock This Lesson | https://realpython.com/account/join/?utm_source=rp_lesson&utm_content=coding-with-opencode-ai |
|
| https://realpython.com/courses/coding-with-opencode-ai/#team |
| Coding With OpenCode: AI-Assisted Python | https://realpython.com/courses/coding-with-opencode-ai/ |
| Rodrigo Girão Serrão | https://realpython.com/courses/coding-with-opencode-ai/#team |
| Recommended Tutorial | https://realpython.com/opencode-guide/ |
| Course Slides (.pdf) | https://realpython.com/courses/coding-with-opencode-ai/downloads/opencode-slides/ |
| Sample Code (.zip) | https://realpython.com/courses/coding-with-opencode-ai/downloads/opencode-code/ |
| Ask a Question | https://realpython.com/lessons/understanding-opencode-differentiators/#discussion |
| https://realpython.com/feedback/survey/course/coding-with-opencode-ai/liked/?from=lesson-title |
| https://realpython.com/feedback/survey/course/coding-with-opencode-ai/disliked/?from=lesson-title |
| Contents | https://realpython.com/lessons/understanding-opencode-differentiators/#description |
| Transcript | https://realpython.com/lessons/understanding-opencode-differentiators/#transcript |
| Discussion | https://realpython.com/lessons/understanding-opencode-differentiators/#discussion |
| 00:00 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=0.0 |
| Now that you’ve used OpenCode to implement a feature | https://realpython.com/lessons/understanding-opencode-differentiators/#t=0.0 |
| in your Python project, you can learn about a | https://realpython.com/lessons/understanding-opencode-differentiators/#t=3.64 |
| couple of characteristics that OpenCode has that, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=6.5 |
| as of this recording, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=9.98 |
| are fairly unique to OpenCode. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=11.48 |
| 00:13 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=13.96 |
| One of them being the fact that you can | https://realpython.com/lessons/understanding-opencode-differentiators/#t=13.96 |
| start a conversation with a model from a specific | https://realpython.com/lessons/understanding-opencode-differentiators/#t=16.82 |
| provider, and you can ask, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=20.42 |
| for example, for a joke, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=22.6 |
| and then you can use /models and | https://realpython.com/lessons/understanding-opencode-differentiators/#t=23.6 |
| you can switch to a different model. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=26.82 |
| 00:29 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=29.48 |
| For example, now let’s go from Gemini 3.5 to | https://realpython.com/lessons/understanding-opencode-differentiators/#t=29.48 |
| Gemini 2.5, and you can ask for another joke. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=32.36 |
| And then, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=36.54 |
| still within the same conversation, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=39.3 |
| you can use the /models command and | https://realpython.com/lessons/understanding-opencode-differentiators/#t=41.56 |
| you can switch to a different model | https://realpython.com/lessons/understanding-opencode-differentiators/#t=44.82 |
| from a different provider. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=47.42 |
| 00:49 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=49.351 |
| For example, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=49.351 |
| you can try this free model from OpenCode Zen, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=50.28 |
| and you can say, “Tell me yet another joke”. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=52.68 |
| 00:58 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=58.64 |
| This is a pretty unique feature that unlocks some | https://realpython.com/lessons/understanding-opencode-differentiators/#t=58.64 |
| very interesting use cases for more advanced projects. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=61.48 |
| Now go ahead, run /exit. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=65.36 |
| One thing that may be interesting for you, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=68.58 |
| it’s going to depend on your personal preferences, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=71.22 |
| of course, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=73.06 |
| but you can run opencode web, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=74.22 |
| and this will open a web client for OpenCode. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=76.44 |
| 01:21 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=81.64 |
| Once you press Enter, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=81.64 |
| your default browser will open and you will see | https://realpython.com/lessons/understanding-opencode-differentiators/#t=83.5 |
| an interface like this, where you can open a | https://realpython.com/lessons/understanding-opencode-differentiators/#t=86.08 |
| project or open a recent project, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=88.72 |
| and you can have a session directly through the | https://realpython.com/lessons/understanding-opencode-differentiators/#t=91.08 |
| browser. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=95.76 |
| 01:36 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=96.545 |
| Finally, if you open the OpenCode documentation, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=96.545 |
| you’re going to find a section on configuring different | https://realpython.com/lessons/understanding-opencode-differentiators/#t=101.14 |
| things, and you will find a very long list | https://realpython.com/lessons/understanding-opencode-differentiators/#t=105.22 |
| of different features and add-ons that you can use | https://realpython.com/lessons/understanding-opencode-differentiators/#t=109.62 |
| within OpenCode. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=114.28 |
| 01:55 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=115.531 |
| For example, you can have OpenCode run | https://realpython.com/lessons/understanding-opencode-differentiators/#t=115.531 |
| specific formatters whenever it modifies your Python files, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=118.4 |
| or you can just enable a Python LSP server | https://realpython.com/lessons/understanding-opencode-differentiators/#t=122.46 |
| so that whenever OpenCode modifies one of your Python | https://realpython.com/lessons/understanding-opencode-differentiators/#t=126.52 |
| files, it automatically uses the LSP server to check | https://realpython.com/lessons/understanding-opencode-differentiators/#t=130.52 |
| things like syntax, if there’s possibly any linting errors, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=135.1 |
| if it’s using variables that don’t even exist. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=138.46 |
| 02:21 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=141.18 |
| The type of diagnostics that you get from an | https://realpython.com/lessons/understanding-opencode-differentiators/#t=141.18 |
| LSP server, you can bake them into OpenCode directly, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=143.06 |
| among many other things, as you might see from | https://realpython.com/lessons/understanding-opencode-differentiators/#t=146.68 |
| the extensiveness of this list. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=149.52 |
| 02:32 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=152.14 |
| These are some of the features that make OpenCode | https://realpython.com/lessons/understanding-opencode-differentiators/#t=152.14 |
| more unique and make it a very customizable agent | https://realpython.com/lessons/understanding-opencode-differentiators/#t=154.92 |
| for your agentic workflows. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=158.3 |
| These are just some of the characteristics that allow | https://realpython.com/lessons/understanding-opencode-differentiators/#t=160.9 |
| you to customize OpenCode to your preferences and needs. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=163.86 |
| 02:49 | https://realpython.com/lessons/understanding-opencode-differentiators/#t=169.02 |
| Go ahead and take a minute to explore the | https://realpython.com/lessons/understanding-opencode-differentiators/#t=169.02 |
| documentation to see if there’s anything you would like | https://realpython.com/lessons/understanding-opencode-differentiators/#t=170.84 |
| to set up now, and once you’re ready, | https://realpython.com/lessons/understanding-opencode-differentiators/#t=173.28 |
| move on to the next lesson where you’re going | https://realpython.com/lessons/understanding-opencode-differentiators/#t=175.64 |
| to do an overview of everything you’ve learned so | https://realpython.com/lessons/understanding-opencode-differentiators/#t=177.48 |
| far. | https://realpython.com/lessons/understanding-opencode-differentiators/#t=179.96 |
| Become a Member | https://realpython.com/account/join/ |
| https://realpython.com/lessons/opencode-implementing-plan/ |
| Overview | https://realpython.com/courses/coding-with-opencode-ai/ |
| https://realpython.com/lessons/coding-with-opencode-ai-assisted-python-quiz/ |
|
Coding With OpenCode: AI-Assisted Python (Overview) 02:29
| https://realpython.com/videos/coding-with-opencode-ai-assisted-python-overview/ |
|
Setting Up a Project 04:38
| https://realpython.com/videos/opencode-setting-up-project/ |
|
Installing OpenCode 03:13
| https://realpython.com/videos/installing-opencode/ |
|
Connecting to an AI Provider 02:52
| https://realpython.com/videos/connecting-ai-provider/ |
|
Exploring the OpenCode Interface 03:26
| https://realpython.com/lessons/exploring-opencode-interface/ |
|
Planning a Refactor 04:16
| https://realpython.com/lessons/planning-refactor/ |
|
Implementing the Plan 04:59
| https://realpython.com/lessons/opencode-implementing-plan/ |
|
Understanding the OpenCode Differentiators 03:01
| https://realpython.com/lessons/understanding-opencode-differentiators/ |
|
Coding With OpenCode: AI-Assisted Python (Quiz) 05:30
| https://realpython.com/lessons/coding-with-opencode-ai-assisted-python-quiz/ |
|
Coding With OpenCode: AI-Assisted Python (Summary) 01:15
| https://realpython.com/lessons/coding-with-opencode-ai-assisted-python-summary/ |
| Privacy Policy | https://realpython.com/privacy-policy/ |
Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover