Ken Barry · Cork · trading systems since 2012 · independent since April 2023 · this since August 2025

The agent that writes the program, not the answer.

AuToken turns a sentence into Java, compiles it and runs it inside itself against sixty-three typed runners, and then a second model that never saw the request has to agree the result is right. Ask it for Hong Kong at night and it builds the city, the Peak behind it and the searchlights over it, in its own 3D world. It also talks, draws, writes music, and drives a phone, a printer and a rover.

63typed runners the model writes against
~1,800documented methods it can look up
516,000lines of Java, designed and directed by me
Hong Kong at night · built by AuToken from one sentence

3D worlds · built by a sentence

Say what you want to see. It writes the world.

Scenes in AuToken's own OpenGL world. No model file, no imported scene, no texture loaded from disk: every object below was placed by a Java program a model wrote against the 3D runners, compiled, run and photographed inside AuToken. The sentences that produced them are the quotes.

Looking down into a full tennis stadium in late afternoon light: a blue hard court inside a green surround, the net, two players, the umpire chair, ball kids and line judges, player benches under canopies, courtside boards, and a two-tier bowl packed with spectators in every colour of shirt

A stadium, late afternoon

“Build me a proper tennis court in there, stadium, crowd, net and all, late afternoon.”

About 120 objects carrying 3.1 million triangles: 23,137 seats and 19,481 seated spectators in a two-tier bowl, each one generated with its own build, clothes, hair and pose, then merged by colour into a few dozen meshes. The court is at real dimensions: 23.77 by 10.97 m, with the net 0.914 m at the centre and 1.07 m at the posts.

Courtside at the baseline: the server in the trophy position with the ball tossed, a line judge and a ball kid by the courtside boards, and the lower bowl's crowd rising behind under the suites and the upper tier
Courtside, on the serve. The players, officials and ball kids are jointed figures posed from joint positions; the racket has a strung head. The court paint, run-off and stand concrete are textures AuToken generates at load.
Hong Kong Island at night from above Kowloon: Two IFC on the left, the Bank of China Tower's white X-bracing, Central Plaza's gold crown on the right, towers climbing the lower slopes, the island's ridge behind with lit roads along its contours, masts with red beacons on the summits, low cloud glowing pink over the Peak and searchlight beams fanning up from the rooftops

Hong Kong, at night

“Give me Hong Kong at night, looking across the harbour from the Kowloon side.”

About 580 objects: 350 generated towers, and Two IFC, the Bank of China Tower, Central Plaza, HSBC and the Cheung Kong Centre built from primitives. The island behind is an 87,000-triangle heightfield shaped on its real summits, from Victoria Peak at 552 m to Mount Parker, with lit contour roads, beacons on the summit masts and the Peak Tower on the gap. The searchlights and the cloud on the Peak are additive light.

Closer on Central at night: Two IFC's setbacks and crown, the Bank of China Tower's bracing and masts, searchlight beams crossing above, and the Peak's lit ridge and glowing cloud behind
Closer on Central. Every window is part of a night facade AuToken paints at load, lit floor by floor with some whole floors dark, and tiled at storey height so the tallest towers read floor by floor. Street light pools at the tower bases and spills up the slopes.
A single-storey stone cottage with a slate roof and chimney behind a dry-stone wall, a picket gate on a cobbled path, a green 1960s estate car on a gravel drive that runs through a gap in the wall to a dropped-kerb crossover, a brick footpath and a marked road in front, broadleaf and birch trees behind and a round garden pond to the left

A cottage, with textures

“Create me a very visual 3D environment, and make sure it uses textures.”

About 380 objects. The cottage is laid out from one set of dimensions so its parts meet: 2.55 m eaves, a 45° roof in fourteen slate courses a side. A gravel drive runs through a gap in the wall to a dropped-kerb crossover; the car is a 1960s estate assembled from primitives. Stone, slate, oak, cobbles and brick are seamless textures AuToken generates at load and projects in world space.

Close view of the cottage front: a plank door in a dressed stone surround, a doormat on the step, a cobbled path running up to it, glazed windows set in deep stone reveals with the room visible inside, and raised beds of roses, lavender, foxgloves and marigolds
Closer in. The windows sit in real reveals and are glazed, so the room shows through; the path runs up to the step and the mat sits on it. The beds are the flower runner's own species templates, each species built once and copied into place.

Each took a handful of iterations: the loop saved a frame, looked at it, and rewrote the program. All three use generated materials, real-time shadows and tone mapping. Click any frame for the full 1920 by 1080 render.

What it is

A desktop agent that acts, and can prove it did.

Most assistants answer. AuToken executes. You give it a goal, typed or spoken, and a model works it in one session: it looks up the API, writes Java, has AuToken compile and run it inside the live app, looks at what came out, and keeps going until a judge agrees it is done or it can tell you exactly why not.

Every goal leaves a full record: the system prompt, the tools it was offered, the whole conversation, and a trace of every call with its output. The Goal Inspector reads it while the goal runs or days later. When a goal produces something visual, the evidence is the frame it rendered and what the judge made of it.

It has been my working environment every day since August 2025. Dictation, image, sound and music generation, a live 3D world with its own renderer, phone control, printer telemetry and an autonomous rover all hang off the same goal loop.

Most of it I drive from the mouse. Holding the middle button dictates into whatever app has focus, and holding right and middle together takes a spoken goal. There are 126 bindable actions in all. Input comes through Windows Raw Input rather than a low-level hook, after a hook froze the cursor twice.

The AuToken desktop: goal box with hotkeys on the left, the goal tree and an attempt's evidence panel in the centre, the 3D world media panel on the right, live memory, CPU, GPU and network telemetry along the bottom
The workspace. Left: the goal box and its hotkeys. Centre: the goal tree with one attempt open on its evidence. Right: the 3D world. Bottom: live memory, CPU, GPU and network.

What it is not

It is not a model. The language, image, video and voice models it calls are rented from OpenAI, Anthropic, Google and the others, on my keys, and anything a provider painted or spoke is theirs, not mine. What is mine is everything that decides what to ask for, runs the program the model writes, checks the result and keeps the record: the application, the runner API, the agent loop and its judge, the OpenGL world, the speech stack, the phone and printer bridges, the rover and its console, the installer. That is the 516,000 lines, and every screenshot on this page is of that.

It is not a chat window with plugins. It is not a wrapper around Codex or Claude Code; it can drive them as sub-agents when a goal is repository work. And it is not a product with a team behind it. One person designs it and one person runs it, every day.

Eight capability badges across the top of the window, each naming the provider and model currently serving it
The provider strip. Eight capabilities, each showing which provider and model is currently serving it. Every one is a dropdown.

Why it exists

I left salaried work in April 2023 because I could see where software was going, and I did not want to watch it from inside someone else's roadmap.

Nothing that ran on your own machine could do it yet. I did not set out to beat anyone to it. I wanted to find out how far one person could take the idea on their own hardware, and I have been independent since, alongside the trading platform, the research platform and the robot.

AuToken is what the plan turned into, and its repository dates from August 2025. It was never a demo. I use it for everything, and the design follows from that. Typed Java, because the compiler catches a wrong call before anything runs. A judge that is never told the request, because a model marking its own work once passed a seven-vertex pyramid as a rigged dragon. A dollar budget on every goal, because I pay the bill.

I have been doing this since 2016. The trading platform I have run alone since then already had an orchestrator that retrains its models every night, gates the result on a full test suite and redeploys itself without a human in the loop. AuToken takes the same instinct, that the machine should do the whole job and account for it, and points it at the entire desktop.

How a goal runs

Look it up. Write it. Run it live. Get judged blind.

Each goal is one tool-calling session with a model. It writes Java, AuToken compiles and runs it inside the live application, and a separate judge decides when it is done.

RENTED · A MODEL CALL, PAID PER TOKENMINE · IN THE APPAgent modelone tool-calling session per goalVision modelnot told the goalJudgescores 0 to 10Goaltyped or spokenRouterquick or craft tier24 TOOLSAPI docsfetched on demandrun_javajavac in-processRender · lookworld or screenand files, clicks and keys, images, Blender, speechVerifierrenders 3 viewsDonetool calloutput, compiler errors, framesdoneframes onlypassesobjection → back to the model, which keeps workingEvery goal leaves a recordsystem prompt · tools · conversation · traceread live or days later in the Goal InspectorA dollar budget on every goaldefault $1 · the model is warned at 75%61 language models from six vendorsWhen the context fillspast 250k characters or 9 images, the modelwrites a handover and a fresh episode takes it up

It writes Java, against types

The model writes ordinary Java against sixty-three Runner classes, and run_java compiles it in-process with every runner already imported. Objects it creates stay alive between calls, so it is working in a live session inside the running app. A wrong call comes back as a compiler error the model can read.

It reads the manual when it needs to

The runner contracts used to be pushed into every turn, about 455,000 characters of them. Now the model asks for what it needs through api_overview, api_search and api_read, over about 1,800 documented methods, many with worked examples.

A judge that never saw the question

When the model says it is done, AuToken renders up to three views of the result. A vision model describes them without being told the goal, and a judge compares that description with the goal and scores it. An objection sends the model back to work.

Each goal carries a dollar budget, and the model is warned when three quarters of it is gone. When the conversation passes 250,000 characters or nine images, the model writes itself a handover note and a fresh episode carries on from it. For its first year a deterministic pipeline of mine repaired the model's Java before asking it again, and in September I deleted about 100,000 lines of it, because tool-calling models had made it unnecessary.

An attempt's evidence panel: Java snippet Succeeded, implementer returned Done, role, duration, and a What happened summary with Code, Plan and Data tabs
One attempt, opened, from before the September rebuild: code, plan, output and the verdict on one panel. Goals now keep a full trace of the conversation, which the Goal Inspector opens the same way.
The goal box hotkey list: new goal by voice, dictate text, read clipboard, save image text, send typed goal, each with its key combination
Every way in. Speak a goal, hold to dictate into whatever app is active, read the clipboard aloud, pull text out of a copied image.

What it does

Sixty-three runners, one way in.

The 3D world is one corner of it. Every capability is a set of typed runner methods, and the model reaches all of them the same way: by writing Java against them.

The API the model writes against

Two lines from a real snippet, as the model wrote them, placing a wall in the 3D world and saving a frame of it:

prim.cuboid("quay_wall", "Harbour wall", I)
    .sizeX(150.0).sizeY(5.0).sizeZ(30.0).center(0.0, 1.8, -71.0).color(STONE_DARK).build();

String view = cam.saveThreeDView(OUT, "oblique", -66.0, 14.0, 34.0,
        24.0, 8.0, -72.0, null, null, null, 1400, false, "#3a6795");

The fourteen-argument call is real. The model gets it wrong often, and the compiler tells it so before anything runs.

Desktop, files, system

Windows, clipboard, mouse and keyboard input, processes, files, scheduled jobs. It can operate the machine it is running on.

WindowRunner · ClipboardRunner · MouseKeyboardRunner · ProcessRunner · FileRunner · SchedulerRunner

Web, network, data

Drives Chrome over the DevTools protocol with its own client and deterministic DOM and JavaScript commands, makes HTTP calls, runs SQL, reshapes JSON.

ChromeRunner · NetworkRunner · DatabaseRunner · JsonRunner · GeoDataRunner · StreetMapRunner · SatelliteImageryRunner

Speech, both ways

Push-to-talk and continuous dictation with a measured stop rule, every capture spooled to disk until its words are delivered, and spoken replies in configurable voices. Used more than the keyboard.

CommunicationRunner

Music and sound

A MIDI song and track builder that knows keys and progressions, an arrangement of WAV and MIDI clips with volume and pan automation, and mix-down to WAV and MP3. Asked in one sentence for five minutes of prog rock with vocals, DeepSeek took 33 turns and came back with 5:03 in E minor through 7/8 and 5/4 on eight lanes, having written its own formant vocal synth on the way, for 25 cents.

MusicRunner (38 methods) · SoundRunner

Images, video, vision

Generation, a fluent edit pipeline, provider-backed AI edits, webcam capture, timelines, video from text or stills, screenshots and OCR, a catalogue that reuses media before spending a call.

ImageRunner · ImageManipulationRunner · VideoRunner · VisionRunner · MediaAssetCatalogRunner · MediaPanelRunner · AnimationRunner

A 3D world of its own

My own OpenGL renderer, on LWJGL, inside the media panel: primitives, terrain, roads, water, trees, grass, fire, fog, skyboxes, Gaussian splats, voxels, cameras, motion paths and video capture, all driven from the model's Java, all verifiable from rendered frames. Thirty-two runners for this alone.

ThreeDRunner (194 methods) · ThreeDCameraRunner · ThreeDTerrainRunner · ThreeDWaterRunner · ThreeDGaussianSplatRunner · ThreeDVideoCameraRunner · and twenty-six more

Devices

An Android phone through AuToken's own Kotlin app over a WebSocket, with forty-nine methods: screen share, both cameras, taps and typing, recording. ADB only installs the app. Bambu Lab printers over MQTT on the LAN, with a watchdog that sounds the phone's alarm. OpenVR.

PhoneRunner · PrinterRunner · VrRunner

The rover

Drive it, look through its cameras, read its telemetry and talk through it. Goals travel both ways: the desktop sends them to the rover, and the rover sends them back.

BuggyRunner (57 methods) · BuggyQuickRunner

Stories

A world bible, a cast with fixed looks, a branch tree, every scene and its image prompt, built into an HTML book you click through.

InteractiveStoryRunner

Things it made, and who did what

The pixels are rented. The program is mine.

Three things that came out of a single sentence each. In every one, a provider painted or filmed the frames, and AuToken did everything else: decided what to ask for, wrote and ran the Java that asked, kept the result consistent, checked it, and filed it.

A pilgrim seated on wet flagstones with a lantern, a black cat watching The same black cat on a stone ford, a hooded figure and bridge behind A carved stone ear rising from a coin-strewn pool, the cat seated before it

A branching story with one cat in it

Goal: a playable interactive novel about a cat that walks the old roads. The story runner wrote the world bible, a cast with fixed visual anchors, the branch tree, every scene and every image prompt, and built the HTML you click through. Thirty-eight frames, one cat, recognisably the same animal in all of them.

Minethe story engine, the character anchors, the prompts, the branch tree, the site it buildsRentedthe paint, from an OpenAI image model
Cork city centre from above, a crop of a 238-megapixel satellite mosaic Cork's real street graph redrawn as a parchment map with a compass rose

Cork, twice

Goal: a satellite image of the whole city, and then the same streets as a medieval chart. The satellite and street-map runners fetched 4,867 tiles, projected and stitched them into one 238-megapixel image, then handed the real street graph to an image model with instructions to draw it as parchment. The roads on the chart are Cork's roads.

Minetile fetch, projection, stitching, the street graph, the prompt built from itRentedthe parchment drawing
An ornate inlaid chessboard on a carved marble table above formal gardens

A still, then a camera move

Goal: an ornate chessboard in a palace garden, then a six-second orbit around it. AuToken asked an image model for the board, passed that frame to a video model as the reference, pulled the first and last frames back out, and filed the still, the clip and the frames in its media catalogue so the next goal could reuse them instead of paying again.

Minethe chain, the reference hand-off, the frame capture, the catalogueRentedthe image and the video

The rover

The same goal loop, on wheels.

A four-wheel robot I built from the chassis up: Teensy firmware for the encoders, a six-sensor time-of-flight ring and an IMU; ninety thousand lines of Java on a Raspberry Pi 5 for control and odometry; two Kotlin apps; a console that runs on the rover's own screen, on the desktop and on a phone. Goals reach it through the same REST surface as everything else, and it answers by voice.

The desktop command deck for the rover: both cameras live, the plan-view map, telemetry and the goal controls
The desktop command deck: both rover cameras live, the plan-view map, wheel targets against actuals, power and thermals, and the goal controls. Every control here is also a runner method the goal loop can call.
The rover in Fusion 360, x-ray view: two platforms, electronics, drive and the pan-tilt camera head inside the shell
The rover in Fusion 360, x-rayed: two platforms, the electronics, the drive and the pan-tilt camera head inside the printed shell. The full build, measurement lab and CAD are on the Buggy page.

Under it: a closed-form skid-steer pivot condition derived from the friction model, a measured feed-forward inverse-map wheel controller in place of PID, fused encoder and IMU odometry, and an overhead computer-vision ground-truth lab (OpenCV, ChArUco) accurate to about three millimetres on the floor, used to calibrate the estimate rather than paper over it with gains.

Integrations

Your keys, your models.

Fifteen provider hubs sit behind the badges, most of them over one shared base. Every model it offers is listed with its context window, the reasoning levels it actually accepts, and its price per call: 61 language models from six vendors, routed across fifteen jobs.

Language, images, video, speech, sound, 3D

OpenAIlanguage · images · video · speech · embeddings AnthropicClaude models Google Geminilanguage · Imagen · Veo xAIGrok · images · video DeepSeeklanguage Deepgramdictation · Aura voices ElevenLabsvoices · transcription · sound effects Hugging Facehosted transcription · embeddings Meshytext and image to 3D mesh Sunomusic Google VisionOCR Local Hybrid3D generation without a provider

Agents it can drive

OpenAI Codex CLIas a sub-agent for repository work Claude Codeas a sub-agent for repository work

Codex and Claude Code do repository work better than I would by hand. AuToken can hand them the repository work on my own subscriptions, sharing its MCP tools with them and keeping the final check for itself, and carry on with everything they cannot do: talk, draw, render, drive a phone or a robot. When one subscription runs out it tries the other, then its own paid loop.

Machines and services

ChromeDevTools protocol AndroidAuToken's own Kotlin app over WebSocket; ADB only installs it Bambu LabA1 and Mini over MQTT on the LAN, with a watchdog OpenVRheadset support RoverTeensy firmware, Raspberry Pi 5, Android YouTubeupload and metadata H2 / MySQLin-memory SQL from the model's Java REST + WebSocketabout 49 endpoints on loopback MCP21 of the agent's tools over the same API Alarms and AFK moderuns goals while you are away
The first-run window: providers grouped into Thinking, Talking and listening, and Extras, each with a key field, capability chips and a link to that provider's key page
First run. Keys are grouped by the job they do, checked with a real call to each provider before they are kept, and stored on the machine. No file is ever mentioned.
The API Keys settings tab with one row per provider
Everything in the welcome window is editable later under Settings.

Versus the coding agents

They edit files. This one runs the machine.

Codex and Claude Code edit repositories from a terminal, and AuToken uses them for exactly that. What it does itself is the part they were never built for.

AspectTerminal coding agentsAuToken
What the model producesEdits to files, shell commandsJava compiled and run inside a live desktop app, against 63 runners and about 1,800 documented methods
When a wrong call is caughtAt runtime, when the command failsAt compile time, and the compiler's message goes straight back to the model
Checking the resultTests pass, or the model says soA vision model describes the render without being told the goal, and a judge scores that against the goal and can refuse "done"
The recordThe session transcriptSystem prompt, tools, conversation and a trace of every call for each goal, open in the Goal Inspector
InputTyped promptTyped, spoken, dictated into any app, or read from the clipboard and images
OutputText and filesSpeech, images, video, sound, music, a rendered 3D world, files, actions on devices
ReachThe working directoryThe desktop, Chrome, a phone, printers, a headset, a robot
ModelsOne vendor for Codex and Claude Code; Cursor and Copilot offer severalSix language vendors and more than ten media vendors, with a dollar budget on every goal; runs on your keys
Where it runsA terminal sessionA desktop application with a local REST and WebSocket API, so scripts can do anything the window can
UnattendedUntil the session endsAlarms, scheduled goals, and an away mode that keeps working
Uses the coding agentsn/aYes: Codex CLI and Claude Code are sub-agents it can hand goals to, on my subscriptions, with its own final check
LimitsPolished products with teams behind them, far stronger at repository work: indexes, diff review, PR agentsNo sandbox: the model's Java runs in-process with full access. Windows only, one user, thin tests, and a renderer short of PBR

Engineering

Thirteen months, one person directing it.

I designed AuToken and directed every part of it, and coding agents wrote much of the code.

Java516,000 lines across 1,802 files in five Maven modules, down from a peak of 601,000 before the September clear-out
AlsoKotlin for two Android apps, Python and Teensy firmware for the rover, JavaScript for the web surface
Commits22,840 between 12 August 2025 and 24 September 2026, on 236 active days. About 9,100 of them merge Codex cloud tasks, and 565 carry a Claude co-author line
Runners63 exposed to the model with about 1,064 methods; ThreeDRunner alone exposes 194
Provider hubs15 hubs, 11 over one shared base, with model lists and cost tracking; 61 language models from six vendors
Agent loopOne tool-calling session per goal over 24 tools, with a blind judge, a dollar budget and a handover when the context fills
Tests590 JUnit tests, thin for the size of it; a material check on every 3D build and the blind judge on visual goals
APIAbout 49 REST endpoints and a WebSocket on 127.0.0.1, and an MCP endpoint serving 21 of the agent's tools
PackagingA Windows installer with its own runtime, FFmpeg and VLC; a first-run window that verifies keys with a real call
DemosSixteen double-clickable tutorials in six groups that reset the workspace and run unattended

What is public

A screened desktop build exists as a separate private repository, with the runner catalogue, the REST surface and a README written for a stranger.

What it shows a stranger

Sixteen double-clickable tutorials ship with it. Each resets the workspace and runs unattended while a voice explains what is on screen.

00 Introduction · 01 What everything on screen is for · 02 The code that comes back · 21 Type what I say · 22 Read my clipboard · 23 Read the words in a picture · 31 A picture from a formula · 32 A fractal, live · 41 Shapes in an empty world · 42 Build a tennis court · 43 Check its own work · 44 Cork from above · 45 A scene worth looking at · 51 Meet the rover · 52 The rover's own console · 53 From the phone
The status bar: memory 56 percent, CPU 72 percent, GPU 30 percent, network idle, each with a sparkline
The status bar. Memory, CPU, GPU and network, live, because the thing that is wrong is usually one of those.

What is in the box

Everything below the provider line is mine. Everything above it is rented, per call, on my keys.

RENTED, PER CALL OpenAI · Anthropic · Google · xAI · DeepSeek · Deepgram · ElevenLabs · Hugging Face · Meshy · Suno · Google Vision · Codex CLI · Claude Code MINE, 516,000 LINES 15 provider hubs11 on one shared base · model lists with context windows and reasoning levels · cost per call · a dollar budget per goal Agent loop one tool-calling session per goal, 24 tools blind judge · dollar budget · handover a trace per goal · alarms · away mode Java runtime run_java · javac in-process · runners imported objects kept alive between calls API docs fetched on demand, ~1,800 methods Surfaces Swing desktop UI, FlatLaf · push-to-talk everywhere REST + WebSocket on 127.0.0.1 · MCP tools Windows installer with its own runtime 63 runnerstyped Java classes · about 1,064 methods with @Usage contracts · wrong calls fail at compile time and the model reads the error Desktopwindows, inputfiles, processesJNA · Raw Input ChromeDevTools protocolDOM and JSHTTP · SQL · JSON 3D worldown rendererLWJGL OpenGL32 runners Speechdictation daemonspoken repliesspeech-core module Media · musicimages, video, OCRMIDI · mix-downOpenCV · vlcj Phoneown Kotlin appover WebSocket49 methods Printers · VRBambu over MQTTwatchdog → phoneOpenVR headset RoverTeensy · Pi 5console + appCV ground truth

Timeline

  1. sportyai: e-sports prediction models that beat the bookmakers for years, ~220,000 lines, run alone. Its orchestrator retrains models nightly, gates on the full test suite, redeploys itself.

  2. Left salaried work, the same weeks Auto-GPT and BabyAGI first let a model execute its own code. Independent since.

  3. crypto-ai: a quantitative research platform across fifteen exchanges, live level-two books on eight of them.

  4. The AuToken repository, and within weeks the 3D world with its own renderer. From the first month it was the environment the rest of the work happened in.

  5. The rover, phone and printer control, the installer, the screened public build.

  6. Goals moved to one tool-calling agent with a blind judge. 22,840 commits and counting.

Contact

Ken Barry

Fifteen years of Java on real-time trading systems, then three of this. Available immediately, remote, based in Cork.