Your Kafka platform, right inside your editor.
Every cluster, topic and application in VS Code or Zed, with help on every change and a check before anything ships.
apiVersion: kafka/v2kind: Topicmetadata: name: payments.refunds cluster: prod-eu-1spec: partitions: 6 replicationFactor: 3 configs: cleanup.policy: delete ret - retention.mslong
- retention.byteslong
- local.retention.mslong
- delete.retention.mslong
retention.ms
This configuration controls the maximum time we will retain a log before we will discard old log segments to free up space if we are using the "delete" retention policy.
apiVersion: kafka/v2+ Created (dry run)kind: Topicmetadata: name: orders.created cluster: prod-eu1prod-eu-1 KafkaCluster 'prod-eu1' is not in the repository or on acme-prod. Conduktor
metadata.cluster · string · required
View ProblemQuick Fix… (⌘.)
Quick Fix
Change to 'prod-eu-1'
spec: partitions: 12 replicationFactor: 3 configs: retention.ms: "604800000"apiVersion: kafka/v2+ Created (dry run)kind: Topicmetadata: name: payments.refunds cluster: prod-eu-1spec: partitions: 6---apiVersion: kafka/v2✗ failed (dry run)Policies check failed: payments-topics: partitions must be between 3 and 12kind: Topicmetadata: name: payments.chargebacks cluster: prod-eu-1spec: partitions: 48Problems1
Policies check failed: payments-topics: partitions must be between 3 and 12 Conduktor [Ln 9, Col 1]
On acme-prod
apiVersion: kafka/v2kind: Topicmetadata: name: orders.created cluster: prod-eu-1spec: partitions: 6 replicationFactor: 3 configs: cleanup.policy: delete In your file
apiVersion: kafka/v2kind: Topicmetadata: name: orders.created cluster: prod-eu-1spec: partitions: 12 replicationFactor: 3 configs: cleanup.policy: delete retention.ms: "259200000"apiVersion: self-service/v1kind: Applicationmetadata: name: payments-corespec: title: Payments core description: Card payments and refunds. owner: team-paymentspayments-squad team-paymentspayments-squad
Enter to Rename, ⇧Enter to Preview
Renamed in your files only. acme-prod still has Group 'team-payments': applying creates 'payments-squad' beside it.
apiVersion: kafka/v2+ Created (dry run)kind: Topicmetadata: name: orders-eu cluster: prod-eu-1spec: partitions: 6 replicationFactor: 3 configs: retention.ms: "604800000"Chat
Using the Conduktor tools, write topics.yaml with an orders-eu topic on prod-eu-1: 6 partitions, 7 days retention. Validate and dry-run it.
- Ran
Get Conduktor kind schema - Ran
Validate Conduktor YAML - Ran
Dry-run Conduktor YAML
topics.yaml has orders-eu on prod-eu-1, with 6 partitions and retention set to 7 days. It passes the schema, and the dry run says it would be Created. Nothing has been applied.
Ask, edit or build
Stay in your editor. Conduktor comes to you.
No more switching between the Console, the docs and a failed pipeline to get one change right. The extension brings what Conduktor knows about your platform to the place where you already work.
Platform teams
Put your whole platform under version control
Pull everything that already exists into files your team reviews in git, then roll changes out the same way your pipeline does.
- Every cluster's topics, applications and policies, synced as files in one go
- Secrets never written to disk, so they never reach git
- What changed in the Console since your last sync, visible at a glance
- A whole environment planned and applied from the editor
Application teams
Ship your changes without the back-and-forth
Create the topics, access and permissions your application needs, with your platform's rules checked as you go.
- Suggestions and docs for every setting, as you type
- Typos and wildcard mistakes flagged, with a one-click fix
- Your platform's rules checked every time you save
- Exactly what will change, before you ask for a review
Dry-run against production as often as you like
A dry run asks your Console what a change would do, without making it. New connections start in prod mode, where dry runs are all they can do.
On staging, in dev mode
On production, in prod mode
Works with the Consoles you run
A Console on your laptop or the ones in your company's network: the extension talks to them directly, with your own token. Already use the conduktor CLI? Zed picks up its settings as they are.
Agents write, you apply
AI agents can write and check changes, but never apply them. Passwords, tokens and keys are hidden from them.
Open source
Apache-2.0, on GitHub. Usage events never include resource names, URLs, files or YAML.
Up and running in two minutes
Install the extension, connect your Conduktor Console, and open your first resource.
- Open the Conduktor view and choose Add Connection.
- Paste your Console's URL and a personal access token. The connection starts in prod.
- Open any Conduktor YAML, or pick New Resource… on a kind in the tree.
Installing from Open VSX? Our listing is in review. Until it's live, install the .vsix from the latest release.
In review for Zed's extension registry
{
"lsp": {
"conduktor-console": {
"settings": {
"url": "https://console.acme-corp.com",
"name": "acme-prod",
"mode": "prod"
}
}
}
} CONDUKTOR_TOKENAlready set up the conduktor CLI? The extension reads CDK_BASE_URL and CDK_API_KEY, so there's nothing to add. Want it before it's listed? Install it as a dev extension.
The language server behind the Zed extension. Point your editor's LSP client at conduktor-console-language-server --stdio for YAML files. It reads the same CDK_BASE_URL and CDK_API_KEY as the CLI.
Copied to clipboard
| VS Code | Zed | |
|---|---|---|
| Completion, docs and errors from your Console's schema | Yes | Yes |
| Names checked, with quick fixes, go to definition and rename | Yes | Yes |
| Dry run on open and save, apply in dev | Yes | Yes |
| Resource tree, Diff with Live, sync folder, CLI plan and apply | Yes | Not yet |
| Tools for Copilot, Claude Code and any MCP client | Yes | Not yet |
Zed extensions can't add panels or views, so the tree and the views stay in VS Code.
Do I need a Conduktor Console?
To check against your platform, yes: a Console you can reach, and a personal access token or an admin API key. Without one, you still get completion and checks from the schema bundled with the extension.
Can it change my Console by accident?
Not in prod, where every new connection starts: no apply, no save to the Console, no delete. In dev, every change is dry-run first and waits for your confirmation.
Does it replace our GitOps pipeline?
No, it feeds it. You write the same YAML the conduktor CLI applies, and every dry run prints the matching conduktor apply -f … --dry-run command, ready for CI.
Which resources does it know?
Every kind your Console's API accepts: users, groups, applications, policies, clusters, topics, subjects, connectors, service accounts and more. The schema comes from your Console, so a newer Console's kinds appear on their own.
Will it touch our Kubernetes or Helm files?
No. It only answers for documents with a Conduktor apiVersion and kind. Kubernetes, Argo CD and Helm documents are left alone, even in the same file.
What does it send to Conduktor?
Usage events: which features are used, as counts, and the Console's kind names. Never resource names, URLs, files or YAML. It follows VS Code's telemetry setting.
Bring your Kafka platform into your editor
Install the extension, connect your Console, and start in minutes.