holaOS Programming Language Support: What's Built-In and How to Extend It
holaOS natively supports syntax highlighting for approximately 37 programming languages in its built-in Markdown editor, while the entire platform itself is written in TypeScript.
holaOS is a TypeScript-centric operating environment for AI agents, but its editor capabilities extend far beyond a single language. Whether you're working with Python, Rust, Go, or SQL, the platform provides first-class syntax highlighting out of the box. This article breaks down exactly which languages are supported, where that support is defined in the source code, and how developers can extend it.
Built-In Editor Language Support (~37 Languages)
The holaOS Markdown editor ships with comprehensive syntax highlighting powered by the lowlight library. According to the source code comment in MarkdownEditor.tsx, the editor uses lowlight's common preset, which bundles grammars for roughly 37 popular programming languages:
"Highlight common languages out of the box.
commoncovers ~37 languages (js/ts/python/rust/go/sql/json/html/css/bash/md/etc.)"
Source location: packages/editor/src/MarkdownEditor.tsx, lines 61-63
The default set includes:
- Web technologies: JavaScript, TypeScript, HTML, CSS, JSON
- Systems languages: Rust, Go, C, C++
- Scripting languages: Python, Bash, Ruby, PHP
- Data & markup: SQL, Markdown, YAML, XML
- Other common languages: Java, Kotlin, Swift (partial), and more
This coverage ensures that most code snippets generated by integrated LLMs (Gemini, GPT, Claude, etc.) receive proper syntax highlighting without any configuration.
Runtime Language: TypeScript-First Architecture
While the editor supports many languages for display, all core holaOS code is authored in TypeScript. This includes:
- Desktop application (Electron-based)
- Agent runtime and orchestration layer
- Plugin SDK and all official plugins
- Core system services
The root package.json confirms TypeScript as the primary development language, with the entire workspace structured around Node.js and Electron tooling. Agents execute in a TypeScript Node/Electron environment, meaning plugin developers write exclusively in TypeScript to extend the platform.
Extending Language Support Beyond the Defaults
The lowlight-based architecture makes adding new languages straightforward. Developers can extend the editor to support additional grammars by modifying the lowlight configuration.
Example: Adding Swift Support
import { createLowlight } from "lowlight";
import swift from "highlight.js/lib/languages/swift";
const lowlight = createLowlight({ ...common, swift });
export const MarkdownEditor = /* … component implementation … */;
By importing the desired highlight.js grammar and merging it with the common preset, you enable syntax highlighting for any language in the highlight.js ecosystem—over 190 languages total.
Key integration point: packages/editor/src/MarkdownEditor.tsx
AI-Generated Code: No Language Limits
The platform's LLM integrations impose no restrictions on output languages. While the editor highlights ~37 languages natively, models can generate code in any language they support—from niche domain-specific languages to emerging research languages.
import { MarkdownEditor } from "@/components/MarkdownEditor";
function Example() {
const markdown = `
\`\`\`python
def hello(name: str) -> str:
return f"Hello, {name}!"
\`\`\`
`;
return <MarkdownEditor value={markdown} readOnly />;
}
The <MarkdownEditor> component automatically detects the python language identifier and applies appropriate highlighting. Unsupported languages still render as plain code blocks—content is never lost, only unstyled.
Key Source Files for Language Support
| File | Purpose |
|---|---|
packages/editor/src/MarkdownEditor.tsx |
Defines default ~37 language set via lowlight common preset |
package.json (repository root) |
Establishes TypeScript as the runtime and build language |
runtime/harness-host/src/agent-runtime-config.ts |
Configures LLM providers (language-agnostic code generation) |
docs/plugin-sdk.md |
Documents TypeScript-based plugin development |
These files collectively determine what holaOS highlights versus what holaOS runs.
Summary
- Editor highlighting: ~37 languages via lowlight's
commonpreset, defined inMarkdownEditor.tsx - Platform runtime: 100% TypeScript for agents, plugins, and desktop application
- Extensibility: Unlimited additional languages through highlight.js grammar imports
- AI output: No restrictions; models can generate any language, with native highlighting when supported
Frequently Asked Questions
Can holaOS run Python or Rust code directly?
No. holaOS executes agents and plugins in a TypeScript Node/Electron runtime only. Python or Rust code must be run through external tools or containers that the TypeScript agent orchestrates.
How do I add syntax highlighting for a language not in the default 37?
Import the highlight.js grammar for your target language and extend the lowlight instance in MarkdownEditor.tsx. The source includes a pattern for merging custom grammars with the common preset.
Does the language support affect what LLMs can generate?
No. The integrated models (Gemini, GPT, Claude, etc.) can output code in any language in their training data. Language support only affects whether the editor applies syntax highlighting to that output.
Is TypeScript required for all holaOS development?
Yes. The plugin SDK and agent framework are TypeScript-only. While you can interface with external services written in any language, all holaOS-native code must be TypeScript.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →