{"id":2157,"date":"2026-09-28T12:50:22","date_gmt":"2026-09-28T07:50:22","guid":{"rendered":"https:\/\/judepereira.com\/blog\/?p=2157"},"modified":"2026-09-28T13:27:45","modified_gmt":"2026-09-28T07:57:45","slug":"building-jupiter-why-i-decided-to-build-my-own-agentic-ide","status":"publish","type":"post","link":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/","title":{"rendered":"Building Jupiter: Why I Decided To Build My Own Agentic IDE"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">It all began when I tried Codex CLI. It was good. It did what it had to do. However, I was afraid of being locked into a single vendor\u2019s tooling. The only other tooling that I\u2019ve been religiously locked into is Jetbrains\u2019 suite of IDEs. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then came Codex\u2019s usability. For the most of us, we run it in a dangerous manner, permitting it to run all commands, and modify all files. A colleague once bragged to me about how fast Cursor\u2019s Composer was, and it immediately struck me that it was so fast, that even if it took your SSH key and used it to gain access to a private server, you\u2019d never know. Its output flew up the console! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Knowing the raw power of these LLMs, it became evident to me that in order to utilise them effectively, I was going to have to:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ditch the CLI &#8211; we\u2019re not in the 90s anymore, and I\u2019ve done my fair share of configuring Gentoo Linux and the Linux kernel during my university days<\/li>\n\n\n\n<li>Have a tool that\u2019s model agnostic, and not tied to a specific vendor.<\/li>\n\n\n\n<li>Ensure that it\u2019s secure, so that I could sleep without worrying (agents can safely run all night long if they need to)<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Enter OpenCode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After some research, I came across OpenCode, and instantly fell in love with it. I could deploy it on my remote server, run it in a Docker container, and apply a network firewall. Things were honestly great! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Soon, I started stumbling upon certain issues. Things like:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Broken subagent delegation (this is genuinely hard, I will follow up on this post in the future. Stay tuned!)<\/li>\n\n\n\n<li>Broken terminal experience<\/li>\n\n\n\n<li>Absolutely zero handoff when moving from the browser on my Mac, to my iPhone<\/li>\n\n\n\n<li>Long sessions refused to reload completely, and in certain instances, sending new messages to a session would simply disappear<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">With these growing frustrations, the largest kicker was yet to come, when they swiftly changed the entire web UI, and tabled support for worktrees to a follow up version. WTF?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Birth of Jupiter<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I had had enough. After building what seemed like an easy agent orchestrator at CleverTap, I took it to the next step. What if I build my own agent harness, that addresses all the flaws of the current harnesses, and open source it? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over the course of three months, I did toyed around with this idea, and shortly after two months, Jupiter became my goto IDE. I dropped OpenCode entirely in the last couple of weeks, as Jupiter was at par, and allowed me to build features that none of the current harnesses had. Simple things like:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Keeping a Git worktree up to date automatically (goodbye manual git pull!)<\/li>\n\n\n\n<li>Checking out and existing branch into a new Git worktree<\/li>\n\n\n\n<li>A true handoff between any browser (if I pull up Jupiter on my phone, it lets me pick up exactly where I left it on the Mac. Same session, terminal state, current project selection, etc)<\/li>\n\n\n\n<li>Configurable environment variables<\/li>\n\n\n\n<li>Easily configurable agent lifecycle hooks to plug in notifications upon work completion<\/li>\n\n\n\n<li>And a lot more!<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">What Lies Ahead<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now that I\u2019ve begun using Jupiter on an hourly basis, I\u2019d like to see where it goes. Would other engineers fall in love with it?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Would it become the next preferred agentic IDE that everybody hosts? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is just the beginning. There\u2019s a lot more to come into Jupiter. During this journey, I\u2019ll be posting some learnings, and thoughts along the way. Watch out for more posts around building Jupiter soon!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019d like to give Jupiter a shot, or explore its features to see what it looks like, see its GitHub repository here: <a href=\"https:\/\/github.com\/judepereira\/jupiter\">https:\/\/github.com\/judepereira\/jupiter<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[732,722],"tags":[735,740,672,737,739,546,726,736,733,734,738],"class_list":["post-2157","post","type-post","status-publish","format-standard","hentry","category-jupiter","category-virtual-engineering","tag-agent","tag-claude","tag-cli","tag-cloud-agents","tag-codex","tag-coding","tag-cursor","tag-harness","tag-jupiter","tag-opencode","tag-self-hosted"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Jude Pereira\"\/>\n\t<meta name=\"keywords\" content=\"agent,claude,cli,cloud agents,codex,coding,cursor,harness,jupiter,opencode,self hosted,virtual engineering\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"@judepereira | Fleeting Thoughts\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira\" \/>\n\t\t<meta property=\"og:description\" content=\"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-28T07:50:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-28T07:57:45+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@judebpereira\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@judebpereira\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#article\",\"name\":\"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira\",\"headline\":\"Building Jupiter: Why I Decided To Build My Own Agentic IDE\",\"author\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g\",\"width\":96,\"height\":96,\"caption\":\"Jude Pereira\"},\"datePublished\":\"2026-09-28T12:50:22+05:30\",\"dateModified\":\"2026-09-28T13:27:45+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#webpage\"},\"articleSection\":\"Jupiter, Virtual Engineering, agent, Claude, cli, cloud agents, codex, coding, cursor, harness, Jupiter, opencode, self hosted\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/#listItem\",\"name\":\"Virtual Engineering\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/#listItem\",\"position\":2,\"name\":\"Virtual Engineering\",\"item\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/jupiter\\\/#listItem\",\"name\":\"Jupiter\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/jupiter\\\/#listItem\",\"position\":3,\"name\":\"Jupiter\",\"item\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/jupiter\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#listItem\",\"name\":\"Building Jupiter: Why I Decided To Build My Own Agentic IDE\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/#listItem\",\"name\":\"Virtual Engineering\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#listItem\",\"position\":4,\"name\":\"Building Jupiter: Why I Decided To Build My Own Agentic IDE\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/virtual-engineering\\\/jupiter\\\/#listItem\",\"name\":\"Jupiter\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#person\",\"name\":\"Jude Pereira\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g\",\"width\":96,\"height\":96,\"caption\":\"Jude Pereira\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Jude Pereira\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g\",\"width\":96,\"height\":96,\"caption\":\"Jude Pereira\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#webpage\",\"url\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/\",\"name\":\"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira\",\"description\":\"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2026-09-28T12:50:22+05:30\",\"dateModified\":\"2026-09-28T13:27:45+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/\",\"name\":\"@judepereira\",\"description\":\"Fleeting Thoughts\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira","description":"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.","canonical_url":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/","robots":"max-image-preview:large","keywords":"agent,claude,cli,cloud agents,codex,coding,cursor,harness,jupiter,opencode,self hosted,virtual engineering","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#article","name":"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira","headline":"Building Jupiter: Why I Decided To Build My Own Agentic IDE","author":{"@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/judepereira.com\/blog\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g","width":96,"height":96,"caption":"Jude Pereira"},"datePublished":"2026-09-28T12:50:22+05:30","dateModified":"2026-09-28T13:27:45+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#webpage"},"isPartOf":{"@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#webpage"},"articleSection":"Jupiter, Virtual Engineering, agent, Claude, cli, cloud agents, codex, coding, cursor, harness, Jupiter, opencode, self hosted"},{"@type":"BreadcrumbList","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/judepereira.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/#listItem","name":"Virtual Engineering"}},{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/#listItem","position":2,"name":"Virtual Engineering","item":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/","nextItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/jupiter\/#listItem","name":"Jupiter"},"previousItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/jupiter\/#listItem","position":3,"name":"Jupiter","item":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/jupiter\/","nextItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#listItem","name":"Building Jupiter: Why I Decided To Build My Own Agentic IDE"},"previousItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/#listItem","name":"Virtual Engineering"}},{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#listItem","position":4,"name":"Building Jupiter: Why I Decided To Build My Own Agentic IDE","previousItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/jupiter\/#listItem","name":"Jupiter"}}]},{"@type":"Person","@id":"https:\/\/judepereira.com\/blog\/#person","name":"Jude Pereira","image":{"@type":"ImageObject","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g","width":96,"height":96,"caption":"Jude Pereira"}},{"@type":"Person","@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author","url":"https:\/\/judepereira.com\/blog\/author\/admin\/","name":"Jude Pereira","image":{"@type":"ImageObject","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g","width":96,"height":96,"caption":"Jude Pereira"}},{"@type":"WebPage","@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#webpage","url":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/","name":"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira","description":"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/judepereira.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/#breadcrumblist"},"author":{"@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author"},"datePublished":"2026-09-28T12:50:22+05:30","dateModified":"2026-09-28T13:27:45+05:30"},{"@type":"WebSite","@id":"https:\/\/judepereira.com\/blog\/#website","url":"https:\/\/judepereira.com\/blog\/","name":"@judepereira","description":"Fleeting Thoughts","inLanguage":"en-US","publisher":{"@id":"https:\/\/judepereira.com\/blog\/#person"}}]},"og:locale":"en_US","og:site_name":"@judepereira | Fleeting Thoughts","og:type":"article","og:title":"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira","og:description":"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.","og:url":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/","og:image":"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png","og:image:secure_url":"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png","og:image:width":512,"og:image:height":512,"article:published_time":"2026-09-28T07:50:22+00:00","article:modified_time":"2026-09-28T07:57:45+00:00","twitter:card":"summary","twitter:site":"@judebpereira","twitter:title":"Building Jupiter: Why I Decided To Build My Own Agentic IDE | @judepereira","twitter:description":"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.","twitter:creator":"@judebpereira","twitter:image":"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png"},"aioseo_meta_data":{"post_id":"2157","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-09-21 09:11:02","updated":"2026-09-28 08:23:28","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/judepereira.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/\" title=\"Virtual Engineering\">Virtual Engineering<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/jupiter\/\" title=\"Jupiter\">Jupiter<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tBuilding Jupiter: Why I Decided To Build My Own Agentic IDE\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/judepereira.com\/blog\/"},{"label":"Virtual Engineering","link":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/"},{"label":"Jupiter","link":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/jupiter\/"},{"label":"Building Jupiter: Why I Decided To Build My Own Agentic IDE","link":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/"}],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pqtyx-yN","jetpack-related-posts":[{"id":1950,"url":"https:\/\/judepereira.com\/blog\/getting-the-aws-cli-to-accept-cloudflare-warps-root-certificate\/","url_meta":{"origin":2157,"position":0},"title":"Getting the AWS CLI to accept Cloudflare WARP&#8217;s root certificate","author":"Jude Pereira","date":"August 11, 2021","format":false,"excerpt":"Download, convert, and install the Cloudflare WARP root certificate into your local set of trusted root CAs, and then tell the AWS CLI to use it.","rel":"","context":"In &quot;miscellaneous&quot;","block_context":{"text":"miscellaneous","link":"https:\/\/judepereira.com\/blog\/category\/misc\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/judepereira.com\/blog\/wp-content\/uploads\/Screenshot-2021-08-11-at-17.27.10.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/judepereira.com\/blog\/wp-content\/uploads\/Screenshot-2021-08-11-at-17.27.10.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/judepereira.com\/blog\/wp-content\/uploads\/Screenshot-2021-08-11-at-17.27.10.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/judepereira.com\/blog\/wp-content\/uploads\/Screenshot-2021-08-11-at-17.27.10.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts\/2157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/comments?post=2157"}],"version-history":[{"count":9,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts\/2157\/revisions"}],"predecessor-version":[{"id":2179,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts\/2157\/revisions\/2179"}],"wp:attachment":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/media?parent=2157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/categories?post=2157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/tags?post=2157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}