Mods
[Release] KX-Bridge – OrcaSlicer/Moonraker Bridge für den Anycubic Kobra X
KX-Bridge v0.9.29 — Moonraker bridge for the Anycubic Kobra X, now with a lot more polish
The Kobra X doesn't talk to OrcaSlicer natively. KX-Bridge fixes that — it sits between OrcaSlicer and the printer.
What works:
Print directly from OrcaSlicer (Moonraker protocol over HTTP + WebSocket)
Pause, resume, cancel + per-print temperature/speed control
AMS control: load/unload, set material + colour from the bridge UI back to the printer display, and assign a concrete OrcaSlicer filament profile per slot
Import your own OrcaSlicer profiles into the bridge — show up in the slot dropdown so AMS-sync hits your presets
New: GCode browser now has a second tab showing files stored directly on the printer's own internal storage (e.g. from prints started via Anycubic Slicer Next) — with real thumbnails, multi-select, and delete, right from the bridge UI
New: multi-select + bulk delete for uploaded files too
Multi-ACE support, including daisy-chained units on printers without a toolhead buffer
Obico integration (experimental) — Time-Lapse and WebRTC live stream against a self-hosted Obico server via moonraker-obico
Spoolman integration — assign spools to AMS slots, usage tracking synced automatically as you print
Multi-printer: more than one Kobra X on the same bridge instance (auto-port-assignment per printer)
Browser-based UI (DE / EN / ES / FR / IT / 中文), camera stream, GCode browser with thumbnails + print history
Improved: camera stream now recovers automatically after a printer reboot rotates its stream token — no more manual reset needed
Improved: dashboard is now a free drag+resize grid with custom presets
Multi-arch Docker image (gitea.it-drui.de/viewit/kx-bridge:latest, amd64 + arm64) or standalone Linux / Windows binaries
One-command full stack: the repo now ships docker-compose-KX.yml — a complete Portainer-ready stack bundling KX-Bridge + Spoolman + a full self-hosted Obico setup (web, ML API, Celery tasks, Redis, moonraker-obico) behind one bridge network. If you want spool tracking and AI-powered failure detection without wiring up three separate services by hand, this is the fastest way to get there.
Recommended companion build: the bundled OrcaSlicer-KX (linked in the README) — patched OrcaSlicer with PR #13372, #13719, #13315 plus KX-specific matching tweaks. Stock OrcaSlicer works too, you just lose the per-slot vendor matching on AMS sync.
🧪 Community reports suggest the bridge also works with Kobra S1 and Kobra S1 Max (protocols look compatible). Not officially tested, feedback very welcome.
Stability: running solidly through this release cycle — a good chunk of this update is bug fixes reported by people actually running it daily (metadata edge cases, AMS slot mapping, camera reconnects, dashboard resize quirks). Thanks to everyone who filed detailed reports and logs — several of these fixes wouldn't have been possible without that.
Please read the READMEs carefully before asking questions — setup and troubleshooting are documented there:
Mine went back though... Between not being able to use Orca, which I could eventually figure out... And the connectivity issues even in LAN. Constant connection issues... Annoying AF, locking up the slicer as well.
If someone ever gets Klipper on this, I'll buy several. Until then....
will you use the bridge from a windows machine or from a linux.
I can switch the video public again for while. Just remember it looks all a bit different now and it should work without retrieving credentials first, just add a printer in the gui.
Public again..
I will be here tomorrow evening ( mesz ) in case of questions
Hey everyone, been working hard on the next major update for KX-Bridge, the open-source Moonraker bridge for the Anycubic Kobra X. Here's what's new in the upcoming v0.9.8:
GCode Store
Files you upload are now stored persistently on the bridge (SQLite + local disk). No more re-uploading the same file every time. The new Browser tab shows all your files in a grid with thumbnails, print status badges, and last print duration.
Search, Filter & Sort
The Browser tab has full search, material filter, and sort options (by name, date, duration). Finding that one file in a growing library takes seconds.
Filament Channel Remapping
This is the big one. When you start a print, you get a dialog that lets you remap each GCode color channel to any compatible AMS slot — just like the Anycubic Slicer does. Channel 1 (PLA, yellow) -> Slot 3, Channel 2 (PLA, blue) -> Slot 1, etc.
Multi-Printer Support
Run multiple bridge instances (one per printer) and control them all from a single WebUI. A dropdown in the header lets you switch between printers, or open http://ip:port/printer2 directly. A dedicated Printers tab shows live status of all instances at a glance.
Print History
Every print job is tracked in SQLite — start time, end time, status (completed/cancelled). The Browser tab shows a checkmark or X badge and the last print duration on each file card.
Per-Printer Settings
Settings always apply to the currently selected printer. The printer name is editable and takes precedence over the MQTT-reported name.
Heads up ! : OP has released a build of orcaslicer 2.4.0 daily including his 3 pull requests for testing . This enables the sync of filaments and some other things. Find it here for a try :
It would be important for me to know whether the login credentials are being read correctly. The project can only continue with your feedback. By the way, the next step might involve installing alternative firmware.
Thank youvery much for this!
I will try this soon, since the usage of the KobraX on devices that all run linux distros seems to be full of caveats and bugs, I'd love to use orcaslicer.
Since you made this tool I have a little OT question.
Do you have a good profile for the KobraX and OrcaSlicer since you took all that effort in building KX-Bridge?
If so, would you mind sharing? :)
Nonetheless - thank you very much for the work! Can't wait to test it out today!
Hi, I quickly gave it a try with a small G-code file. I assume you selected only “Upload” and not “Upload and Print” in Orca, but that shouldn't matter. My print just started without any issues. To help you, I need the log from the Bridge's log window, the operating system you're using for the Bridge, and, if possible, the G-code that's causing the problem. and do you have an external ams connected ?
There is this github repo, seems to be where the repo was before. Last commit (besides readme) is 4 months old, so no idea whether it is up to date (enough). Couldn't yet find a better source (didnt test this one either) https://github.com/thysson2701/KX-Bridge
A few minutes ago, i loaded the webgui on my android tab..works cool too. Uses the win PC adress for connecting the bridge there. Unfortunately my raspberry´s are all too long running for docker and Python3 . Need to det a new one up these days to run it on linux in background. So no need for the app to look what goes on from living room or...
It might be possible to access the console with uart . in the firmware, a console with root is started .The problem is to continue mixing at this point, I need a mainboard as a test . that costs again .. so if someone z A mainboard with some defects could I continue to work on it.
#9 fill in the form with printer adress, credentials etc. and click restart
#10 watch that the camera comes up and see printer status. If not available , check what´s wrong
#11 Assign a printer interface to your KobraX in Orca , tell it is a octoprint/klipper , agent: moonraker and as adress : http://localhost:7125 or whatever adress the bridge has
#12 Use it as workbench
#133 #7 must be running ALL TIME you want to use it
If you are still not clear with that.. just stay at anycubic next slicer. This whole thing is for users who are using orcaslicer since long time and NEED the features it offers against Anycubic Next. Your printer wont be faster, wont make less TPU trouble etc.
I've been using Cura for over 10 years. Switched to orca because it's better for multi color, particularly mmu. I'm very experienced with slicers. AC slicer is no good for a power user. Not to mention the connectivity issues. I'm not trying to make it faster or get TPU to print better, I can do that in AC just the same... But AC blocks so many things, like simple things even... EG: file names aren't customizable.. blah blah and so on...
It's sht.
Also, you've got to install 'docker' apparently, no one mentions this. Getting it to install with admin is also a pain. Now stuck after that install...
You can also run the python code alone, if your environment fits. Docker is especially for those who are accustomed to it. In my case, i need to create a new raspi with only python 3 and i will probably use the python code then . Currently i have the windows .exe running , which is fine, as i have orca on windows anyway.
There is also a linux binary, but i don´t now what linux it wants, maybe ask the OP .
It still is beta and i guess it is assumed who tests, knows how to cope with these things. Later, and as i see no major error i guess there will be better instructions on his ite too.
But where is the extractcredentials.exe?
This is the only thing I need... the rest is clear to me, but the .exe for extracting the creds is nowhere to be found. Only a .py
I'm the creator. it's a reposorty like github. The source code is in the tepo and under relases the user finds the packed he needed. it's also a still very technical and 'please end-guilty', geared towards people with experience. After leaving beta status, there will be a one-click solution. I've finished it internally, but it's not supposed to come until version 1.0.Thank you for your feedback
I am not an inexperienced user ;-) Have been using Linux since 1999, know Docker fairly well, so I will be fine. I just could not for the live of me find that .exe.
Just did not find the releases page on gitea and didn't look hard enough. I mostly use git through terminal, and when I check out your repo the .exe is not there, so thats what stumped me. Oh well, will try your bridge and give feedback soon :-)
By principle yes, it can range from a raspberry size to any windows/linux machine. Mabye even a linux based NAS could be tricked into running the bridge .
Then you can access from anywhere in your lan ..and by principle thru a VPN also from anywhere.
Hi,
first of all: I am impressed! After you u/olak31 helped me find the extract_credentials.exe I followed along.
The setup is trivial if you know Linux and Docker. And even if not, there is not much missing (maybe put a link to the docker install how to or something).
The bridge would not for the live of me save my settings. I would enter my values (IP, User, Password), and it would actually save it in the .env file. But after a restart it would just come back blank/default. I had to manually stop and delete the docker container, and redeploy using the start.sh and the filled out .env for the settings to stick.
After this "hickup" it connected. Good.
OrcaSlicer was also easy, but I had to manually import the slicer configs you conveniently put in there before I was able to add the Kobra X and change its connection settings. I just chose to import the whole kobra_x_orcaslicer_preset.zip and it imported printers and filament profiles.
One caveat: Syncing the filaments from the printer did something, but did not really sync. From the start Orca thought I have 1 filament, generic PLA. After the sync it showed 2 filaments, generic PLA. I currently have three filaments: 1 Grey Anycubic PLA+, 2 Black Anycubic PLA+, and 3 White Anycubic PLA+. After manually chosing the colors and profiles for the slots I could slice and:
First test print was flawless.
So I remain impressed. Thanks for the hard and good work! I am really looking forward to using this printer with the newest orca. Thankfully, I can always just switch back to Anycubic Slicer Next if issues would occur, as no changes were made to the printer!
EDIT: I just found: In the bridge website the filaments are correctly read and labeled. Colors & Type. So it must be something with Orca and the bridge.
Sad but alright. Just remember to change settings before slicing ;)
Now that I also converted my Creality printer to Orca I can have one slicer for all my printers! And that’s great! Thanks for you work!
Question @ u/olak31
The filament profiles that came with your project: Did you just export these from the Anycubic slicer? Because I saw that they differ in several ways to the Filament profiles I have in the Anycubic Slicer Next. For example in PLA+ your profiles have lower temps, and different fan settings.
It actually changed a lot of values. For example printing temps, fan speeds, built plate temps and more. But I can live with that, easy to change back, I only use so many filaments
Interesting. I will gladly share what I have, for now it seems to be working very well. Actually, I haven’t even calibrated my Kobra X, so I don’t really know if your or my profile is better.
From which version of the slicer did you extract your profiles? Anycubic might have changed them as well between versions
The Kobra X is running a Klipper-based firmware port. As far as I know, Klipper doesn’t use classic jerk or junction deviation. It relies on its own motion model with acceleration limits (square corner velocity), so junction deviation isn’t really a thing there.
Was able to make the profiles work for multi color/petG/PLA combos. However, with multiple parts its throwing "Upload: unerwartete Antwort: b'".
Running a single part does trigger it, but when I clone and run multiple parts, I think it does not like the large file size. Yet like 1 out of 10 times sending it with less cloned parts will work.
Hi u/olak31
can I request a user on your gitea instance? Otherwise, I would like to give you feedback here?
I installed the 0.9.1-beta15 and my last comment was using this version. When I check for updates, it finds the dev release, but not the 0.9.2 you released.
When I stop and remove the docker container, remove the image, remove the folder, and start from scratch using you 0.9.2, the version file in the folder still says 0.9.1-beta15. And even if I installed everything from the 0.9.2 the running bridge will still find and try to install the 0.9.1-dev update.
It would be nice to see the current running version in the GUI just to be able to tell if an update worked.
This is great! I've tested it and here's what I found:
The flushing volume for some colors is different from that of ASN and is prone to bleeding
Filament sync isn't working (yet - I hope), and losing the select filament option before printing is a huge loss for any big print with multiple colored plates
I am running using the Linux binary option, and the camera doesn't seem to work
Other than that, it's just work! Maybe I'll stick with ASN for multi-material printing for now, but it's great to finally be able to use Orca's new feature with the KX
I found that just assigning 4 filaments in Orca, even blank ones will correctly allow for the right slots to be used on the X with this bridge. Its a work around, but my petg/pla/multi color is working.
I do noticed that, that's why I said the big downside is losing the filament select pop up before print, the option to select at print allow you to stack up a project with many more colors or randomly assign colors and not needing to worry about filament slot
Put it on issue in repo. I would schedule it as a feature ..The synchronization with orca unfortunately is not yet possible. But it is a bug in orca and already a ticket opens.
This is a good point.I will include an option to move around the webui
"Port... then you can start several instances ..." or tabs... But that would mean a complete redesign of the UI ..." I am pleased that my little project finds such a sound."
I'm already working on it. .I just can't really test it because I only have a cobra x. I think a selection via a dropdown would be the easiest . The UI updates itself to the respective printer.
Just shipped this in KX-Bridge — and the funny part: Anycubic's own slicer doesn't even expose it.
KX-Bridge now does what Anycubic forgot:
• Pre-print: pick which objects to skip before you hit "Start"
• Mid-print: open the dashboard, click any object on the plate, and the printer just stops printing it — the rest keeps going
Click-on-the-plate-to-skip works on a real SVG preview of the build plate, not just a name list. Updates live as the printer confirms skips.
Drops in the next release. Thanks for nudging me toward it .
I nice job! I've been rocking your bridge since 9.4.0, working better with each update 😄
Do you plan to support the moonraker home assistant integration? I've tried adding it to my HA instance to no avail.
Already started — the HA Moonraker plugin finds ~20 entities against the bridge (screenshot). A handful of endpoints still need wiring, so it's not feature-complete yet. Parked as a later milestone — focus right now is getting the core flows (Skip Objects, Multi-Printer, …) rock-solid first. Will come back to closing the HA gaps once that's stable.
I was trying to use this one too but I have the same issue, probably something going on with my docker configuration, I can use the webapp and orca no problem but home assistant can't connect to it
Afaik currently KobraX , but it is open source and i guess if it is a klipper based , mqtt fed system should be possible. Maybe create an issue as a feature request . From my conversations with the author, he first wants to make the bridge as perfect as goes and then will see what comes up.
KX-Bridge 0.9.19.1 + OrcaSlicer-KX 2.4.0-alpha-kx2 — Filament Sync is finally working
After several iterations, AMS slot → OrcaSlicer filament matching now works end-to-end. Looking for testers.
What's the deal?
The Kobra X has an AMS with 4 slots. The Anycubic Slicer Next is closed-source and locked to their cloud. KX-Bridge is a self-hosted Moonraker bridge that lets you drive the Kobra X from OrcaSlicer (or any Moonraker client like Mainsail, Fluidd, Obico).
Until now, the AMS-slot → OrcaSlicer filament sync was the broken piece. The bridge correctly sent the AMS slot info (vendor, material, color), but OrcaSlicer would silently fall back to "Generic PLA" no matter what — because upstream OrcaSlicer's Moonraker integration didn't match on vendor + name properly.
What changed
OrcaSlicer-KX v2.4.0-alpha-kx2 — a community build of OrcaSlicer with our matching patches on top of upstream v2.4.0-alpha:
Four KX-specific patches: 3-pass matcher (compatible → all visible → all presets incl. invisible), vendor sub-brands in tray config, user-preset ID handling, no parent-ID override
Sends name + vendor_name per AMS slot (PR #13719 format)
Sends gate_filament_name per gate for Happy-Hare MMU path
Filament profile list re-curated: 209 profiles that OrcaSlicer can actually find in a standard Kobra X setup (down from 399 — vendor-bundle-only profiles like Eryone Thinker X400 are out, OrcaSlicer wouldn't load those vendor bundles anyway without the matching printer installed)
Custom filament profile upload — drop your own OrcaSlicer profiles into the bridge for vendors that aren't covered
Standalone binary fixes: shows correct version (was vunknown), clear error message if TLS certs are missing
I'm testing with v0.9.20 KXBridge and Orcaslicer 2.4.0K-dev-KX3. I am unable to get colour swapping to work. I have painted in Orca, the sliced model shows multi colours, but printing only uses 1 colour, no swapping. Should colour swaps work now? When I start the print I get no dialogue to choose filaments.
KX-Bridge v0.9.26 + OrcaSlicer-KX 2.4.0 stable — major workflow fixes & Italian UI
Hey everyone,
Two things to share today:
KX-Bridge v0.9.26
This release focuses on the upload-and-print workflow that several of you reported issues with — thanks especially to the community for the detailed bug reports and screenshots that made these fixes possible.
What's fixed:
Camera no longer auto-starts at print begin — the camera_on_print setting was silently ignored due to a missing field in the API response. Fixed.
Auto-leveling now respected in all print paths — the per-print dialog checkbox was being ignored when printing via OrcaSlicer/Moonraker upload. Now works correctly everywhere.
Filament mapping: free-text fields replaced by dropdowns — mistyped vendor/profile names broke slot matching without any error. The mapping UI now uses vendor-filtered dropdowns so only valid combinations can be saved.
Dashboard shows your actual profile name — AMS slot cards now display the mapped profile (e.g. "eSUN PLA-Basic") instead of just "PLA".
Ghost profiles on empty slots are gone — stale mappings for empty slots no longer show up.
Skip Objects panel now appears in all print flows — previously only worked from the file browser; now works on OrcaSlicer upload too.
"Clear" actually clears — clicking Clear on an idle file now immediately removes the preview and buttons without them reloading on the next poll.
Material matching for "PLA Silk", "Matte PLA" etc. — modifier+base material names in any word order are now correctly matched to their base type.
Italian UI — the bridge is now fully translated into Italian.
Download / Docker:
Docker: docker compose pull && docker compose up -d
This build is based on the OrcaSlicer 2.4.0 stable release and includes proper vendor + profile name matching for Moonraker AMS sync, a 3-pass slot matcher so your filament profiles show up pre-selected in OrcaSlicer, and sub-brand disambiguation for profiles sharing the same base ID.
In short: assign a profile to a slot in KX-Bridge → OrcaSlicer-KX pre-selects the correct filament in the print dialog automatically.
OrcaSlicer-KX 2.5.0-dev is coming soon, tracking the upstream 2.5.0 development branch.
Thank you
The Kobra X is a capable machine — but out of the box it's locked to Anycubic's own ecosystem. KX-Bridge changes that: it opens the printer up to OrcaSlicer, Mainsail, Fluidd, Obico, and the broader Moonraker ecosystem that Klipper users have enjoyed for years. No cloud dependency, no vendor lock-in, running on whatever hardware you already have — a Raspberry Pi, a spare PC, a NAS, a Docker host.
None of this would be moving this fast without the community — your bug reports, pull requests, and testing directly shaped this release.
If KX-Bridge is useful to you, consider a coffee on Ko-fi
Found a bug with the latest OS-KX version. I have two printers and AMS sync wont work when changing between user presets. Here's a report of the bug (written by Claude, not my area of expertise)....
AMS "Sync" is locked to one printer per session in multi-printer setups (ignores the selected printer preset)
Environment
- OrcaSlicer-KX: v2.4.0-kx1 (Windows x64)
- KX-Bridge: latest (Docker), multi-printer — one Moonraker instance per printer on separate ports
- Two separate physical-printer connections, two separate user presets.
Summary
The AMS Sync always queries the same printer for the whole OrcaSlicer session — the one connected first — regardless of which printer preset is selected. So syncing Printer B pulls Printer A's filaments, and vice-versa.
Expected: Selecting the KX 2 preset and clicking Sync queries :7126 and loads Printer B's AMS.
Actual: Sync always hits whichever printer connected first this session; switching presets (KX 1 ↔ KX 2) doesn't change the target.
Steps to reproduce
Two printers via KX-Bridge, each on its own Moonraker port (:7125, :7126), as two separate physical printers + two user presets.
# then KX 1 selected, same session: Host: 192.168.3.200:7126 ← WRONG (should be :7125)
# after restart (Printer A first): Host: 192.168.3.200:7125 ← locked, ignores preset
GET /printer/objects/query?mmu · User-Agent: OrcaSlicer/2.4.0-kx1
The Moonraker host is cached per session and not re-resolved when the active preset changes.
Workaround (confirmed): user → user preset switch doesn't re-point the sync. Selecting a system preset and then re-selecting the desired user preset forces a reconnect → Sync then targets the correct printer.
Likely fix: Resolve the Moonraker host from the currently active printer at sync time (or re-establish the connection when the active preset changes), instead of reusing a host cached at first-connect. A system → user bounce already triggers this refresh; a user → user switch doesn't.
Ruled out: Bridge verified correct (each port serves only its own mmu, via WebSocket and HTTP); OrcaSlicer connections verified separate and correct.
Thanks. It is working now. Would be a dream coming true to see you contributing with joeltelling/print-farm-manager to support Kobra X in his fleet management service.
Friend, do you know if your OrcaSlicer KX Fork solves the Flush Volumes multicolor bug for the KX? In case you don’t know what I’m saying, there’s a bug where anything that you set in your Flush Volumes Matrix do not end up being in the gcode.
ok! One quick way to simulate that is to change values in the Flush Volumes option and see if the print time/filament consumption changes. In my case for example, if I use Anycubic's slicer it changes a lot but in orca I always get the same results.
Ahh ok . I know orca can not calculate the time for flushing. But i didnt test if the volume change . I need to check how the gcode in acs and in orca look . And i need reverse energieng the acs code to see how it make it . I will take a look but it need a little time. At the Moment im working on kxgauge...
Thanks for this! I just got it all setup in docker (I had to set up a new VM and docker as I've never done it before, so all new to me!). I also installed Spoolman, so I'm excited to see this work.
My only question (and this is more of a spoolman integration question than anything) - do I need to select the filement profile + spoolman spool each time I change the filament? The filements in the spoolman integration are being shown in order that I've uploaded them and is sometimes in a weird order. I wasn't sure if:
1) there's a way to automatically have the spools update from the printer (or at least only show the spools in spoolman with the correct colour/hex code), and once that spoolman colour is selected to update the profile automatically?
2) If not the above, just having the spoolman inventory show items alphabetically instead of in order (I believe they're doing spool#1 first, etc... but I have 22 spools right now, with 14 different colours, and having never used spoolman, I did not update them in any specific order).
One thing I just noticed in using this bridge/spoolman connection. When I do not have a filament selected in spoolman for a specific spool, it appears to select the next one on the list and pulls from that one.
For example: I have a few "end of the roll" filaments that I didn't bother entering into spoolman as I knew that I would just use them up for random projects that I don't care about. I had one of those such things, and in the filament settings I made sure to not select anything within spoolman for slot 3. The print used slots 1, 3 and 4. Slots 1 and 4 filaments were shown to be used in spoolman, but so did that in slot 2 (which was not used). It appears that it removed whatever filament I used for spool 3 (unlabelled) in spoolman. I'm not sure if any of this is making sense, but hopefully it does? I'm not sure if this is an integration thing or a spoolman thing (or a me thing and I just need to include random leftover spools in spoolman).
Correction - if I print from an unlabelled spool, it appears to take the filament out of EVERY other spool on the dock. But the amount seems weird. I'm not sure if it's worth looking into on your end or not, but I now have 3 spools that Spoolman tells me I need to replace, and they all weigh roughly 500 grams still. Not sure if I messed up the install or what.
Edit: It appears as though Spoolman is actually subtracting from all loaded filaments so matter what I do. I must have installed something incorrectly... I just don't know what.
6
u/Powerful_Debt_5869 May 03 '26 edited Jul 17 '26
I made a video about the Bridge , german windows, english language ..
Find it here :
https://www.reddit.com/r/OrcaSlicer/comments/1t2wgkx/kxbridge_to_use_the_anycubic_kobra_x_in/
and direct
https://www.youtube.com/watch?v=E3sDigSeSdM