# Examples of Julia-based End-User Tools

**URL:** https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677
**Category:** General Usage
**Created:** [April 10, 2026, 6:43pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677 "2026-04-10T18:43:40Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![MDSW](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@MDSW](https://discourse.julialang.org/u/MDSW)
#### Post date: [April 10, 2026, 6:43pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/1 "2026-04-10T18:43:40Z")

</div>

All, I’m looking for examples of tools with an end-user facing interface of some sort for using them, with accessible code repositories. My interest is in surveying how these are structured, built and distributed. A few scoping definitions:

- End-user facing means intended for an end user to run for some purpose. This would exclude projects that are just pure packages intended to be included in some larger tool, though if the package includes a self-contained MWE that can be practically used as an end-user tool, that’s fine (in that case, ask yourself, would a user actually consider this ready-to-run, that is, there’s enough of a readme or whatever for them to get it going). But, generally, these are going to be Julia “apps”, or stand-alone GUI/CLI tools.
- The “interface” might be a CLI, a GUI/TUI, or something an end-user would directly interact with to use the tool. We’re not including REPL-only applications where the user would be expected to write Julia code to interact (so manually calling package functions against-REPL-loaded data is out; `include`ing a file in the REPL and calling `main()` is OK if that’s all there is to it). Also not interested in things that present an API as the only interface (e.g. a REST service).

Just looking for links to repos in responses; thank you in advance!

---

<div class="post-metadata">

### Author: ![Rakesh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rakesh/32/202257_2.png) [@Rakesh](https://discourse.julialang.org/u/Rakesh)
#### Post date: [April 10, 2026, 7:23pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/2 "2026-04-10T19:23:54Z")

</div>

I have recently created gui application. You can find more details here

> [@\[ANN\] QRStudio.jl - Cross platform Julia desktop application for Barcode and QR code processing](https://discourse.julialang.org/t/ann-qrstudio-jl-cross-platform-julia-desktop-application-for-barcode-and-qr-code-processing/136537/1):
>
> I’m excited to announce the release of QRStudio.jl, Cross-platform desktop application for Barcode and QR code processing, providing a unified interface for detection, visualization, and generation workflows. Features Simultaneous analysis of multiple image files via a drag-and-drop and file upload interfaces. Support for over 20+ formats including QRCode, Aztec, DataMatrix, Code39 and Code128. Real-time polygon overlays that precisely map detected barcodes within their original image context. …

---

<div class="post-metadata">

### Author: ![atthom](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/atthom/32/7173_2.png) [@atthom](https://discourse.julialang.org/u/atthom)
#### Post date: [April 10, 2026, 10:33pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/3 "2026-04-10T22:33:38Z")

</div>

Do you accept tools that are not fully written in Julia?

I wrote a tool that is basically a single-page web app.  
Front-end is in React and backend in Julia using Oxygen.jl.

---

<div class="post-metadata">

### Author: ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)
#### Post date: [April 10, 2026, 11:02pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/4 "2026-04-10T23:02:00Z")

</div>

Pluto.jl is pretty widely used, though the end-use is still writing Julia, just mostly in your own notebooks instead of Pluto API. Javascript implements the browser interface and bridges the Julia backend; pure Julia is hard to come by in a world where established contexts and frameworks rely on other languages.

The Pkg app system is fairly new (1.12+) and experimental, so expect older projects to use different methods, even a brief foray in the REPL. The Model Context Protocol server Kaimon.jl comes to mind as a Pkg app. To affirm the earlier point, while the repo is nearly pure Julia, the server connects Julia REPL sessions to MCP clients that are probably not implemented in Julia.

---

<div class="post-metadata">

### Author: ![MDSW](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@MDSW](https://discourse.julialang.org/u/MDSW)
#### Post date: [April 11, 2026, 12:12am UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/5 "2026-04-11T00:12:50Z")

</div>

Yes! In fact, part of purpose here is because it is a little bit hard to write such tools _only_ in Julia, so hybrids are fine. Julia just should do most of the work at the core of the tool.  
Thanks for your reply!

---

<div class="post-metadata">

### Author: ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)
#### Post date: [April 11, 2026, 9:11pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/6 "2026-04-11T21:11:59Z")

</div>

Of recent projects, see Tachikoma.jl and a [satellite simulator](https://discourse.julialang.org/t/inpes-satellite-simulator-ui-is-now-powered-by-tachikoma-jl-and-it-is-amazing/136342) based on it.

Of my projects, see:

- GivEmXL.jl which is TUI,
- PackageMaker.jl which is GUI based on Blink.jl, and
- CasualPlots.jl which is GUI based on Bonito.jl

---

<div class="post-metadata">

### Author: ![Jake](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jake/32/46007_2.png) [@Jake](https://discourse.julialang.org/u/Jake)
#### Post date: [April 11, 2026, 10:16pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/7 "2026-04-11T22:16:32Z")

</div>

You might check this link out.

> [@An example for cross-platform standalone GUI application](https://discourse.julialang.org/t/an-example-for-cross-platform-standalone-gui-application/128822):
>
> As I promised in [the thread about](https://discourse.julialang.org/t/step-by-step-instruction-and-example-how-to-create-standalone-applications-for-windows-with-a-g-ui/128274/1) the instruction how to create standalone applications with a GUI, here is as example a complete GUI program that was created using [PackageCompiler](https://github.com/JuliaLang/PackageCompiler.jl) + [Lazarus](https://en.wikipedia.org/wiki/Lazarus_(software)). (I selected Lazarus as UI because it is platform-independent and one is quick to make a fully-featured GUI.) The program is part of a package I wrote for a new algorithm to cluster data (called “Iteridense”). I wrote the algorithm completely in Julia as a module. This module is compiled to a library as de…

---

<div class="post-metadata">

### Author: ![MDSW](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@MDSW](https://discourse.julialang.org/u/MDSW)
#### Post date: [April 12, 2026, 1:29am UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/8 "2026-04-12T01:29:08Z")

</div>

Thanks! Yes, I was tracking that one already.

---

<div class="post-metadata">

### Author: ![uwestoehr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/uwestoehr/32/216201_2.png) [@uwestoehr](https://discourse.julialang.org/u/uwestoehr)
#### Post date: [April 13, 2026, 1:02pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/9 "2026-04-13T13:02:30Z")

</div>

After many months not being logged in a sign of life from me. Meanwhile I finished the application but moved its development from GitHub to Codeberg:

> **[Iteridense-package](https://codeberg.org/donovaly/Iteridense-package/)**
>
> Julia and Lazarus package for the Iteridense clustering algorithm

However, since Codeberg has a limit of 100 MB for binaries, the binaries are still offered at GitHub:

> **[Releases · donovaly/Iteridense-package](https://github.com/donovaly/Iteridense-package/releases)**
>
> Julia package and standalone program for the Iteridense clustering algorithm - donovaly/Iteridense-package

Meanwhile, I could also finish the paper describing the algorithm for which I created Juliastic ([https://codeberg.org/donovaly/Juliastic](https://codeberg.org/donovaly/Juliastic)) as connector between Julia and Lazarus:

> **[A simple iterative grid- and density-based Clustering Algorithm](https://zenodo.org/records/19343844)**
>
> We introduce Iteridense, an iterative clustering algorithm combining grid-based and density-based methods. Itprovides two ways to perform the clustering and for both it provides a clear path on how to change the algorithm’s inputparameters to achieve...

---

<div class="post-metadata">

### Author: ![langestefan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/langestefan/32/207923_2.png) [@langestefan](https://discourse.julialang.org/u/langestefan)
#### Post date: [April 16, 2026, 6:10pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/10 "2026-04-16T18:10:48Z")

</div>

I don’t have anything concrete to share yet, but I have been working on a Julia implementation of Open Charge Point Protocol (OCPP). The server side implementation is here: [GitHub - JuliaSolarPV/OCPPServer.jl: Server API bindings for the OCPP protocol. · GitHub](https://github.com/JuliaSolarPV/OCPPServer.jl)

Basically the idea is to provide the API bindings and data management, and then build an application around that. So it it’s a very modular way to build an OCPP stack, compared to something like [SteVe](https://github.com/steve-community/steve) which has everything built into a single application.

OCPP is very popular in the Netherlands and in Australia, and often mandatory in EV charger tenders as a way to connect to a charge point operator or to do things like providing grid services and V2G. I think Julia is ideal for this usecase, thanks to great multi-threading support, HTTP.jl, JSON.jl and multiple-dispatch. Just need to decide on the frontend now.

The first concrete application of this is a bridge between my Alfen OCPP charger, and my Victron EMS system. If you’re familiar with EVCC, that is more or less the end goal. Stupidly enough both companies are Dutch and their offices are almost across the street from eachother. Yet they just won’t talk to eachother!

---

<div class="post-metadata">

### Author: ![LeePhillips](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/leephillips/32/205514_2.png) [@LeePhillips](https://discourse.julialang.org/u/LeePhillips)
#### Post date: [April 24, 2026, 2:58pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/11 "2026-04-24T14:58:01Z")

</div>

In that case I have

> **[The Plucked String](https://lee-phillips.org/pluckit/)**

and

> **[2D Vortex Dynamics](https://lee-phillips.org/vortex/)**

---

<div class="post-metadata">

### Author: ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)
#### Post date: [April 24, 2026, 4:02pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/12 "2026-04-24T16:02:46Z")

</div>

Bit of an aside, but what are these gaps/dips in the spectrum?

 ![image](https://global.discourse-cdn.com/julialang/original/3X/1/5/153b766a5a01667f90d332f6448d66cc02a6bd2c.png)

---

<div class="post-metadata">

### Author: ![LeePhillips](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/leephillips/32/205514_2.png) [@LeePhillips](https://discourse.julialang.org/u/LeePhillips)
#### Post date: [April 24, 2026, 4:38pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/13 "2026-04-24T16:38:34Z")

</div>

Some frequencies are ruled out by the initial and boundary conditions. That’s part of what gives the sound its particular character.

It’s more obvious if you put the slider all the way to the right, which corresponds to the exact center of the string. Now all the even-numbered harmonics are eliminated, because they have a node at the string’s center—but the initial condition has a maximum there.

---

<div class="post-metadata">

### Author: ![Jake](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jake/32/46007_2.png) [@Jake](https://discourse.julialang.org/u/Jake)
#### Post date: [April 24, 2026, 5:58pm UTC](https://discourse.julialang.org/t/examples-of-julia-based-end-user-tools/136677/14 "2026-04-24T17:58:27Z")

</div>

The Fourier series of a triangle wave will just be the odd harmonics as shown by the first summation [here](https://mathworld.wolfram.com/FourierSeriesTriangleWave.html). Lee model is consistent with this. With an asymmetric triangular wave things get more complicated as the link shows.
