Je beoordeelt de echte wijziging.
De agent werkt op de code die je aanwijst. In de diff zie je iedere gewijzigde regel. Het verslag vertelt wat is onderzocht, aangepast en getest. Je kunt per bestand commentaar geven en om een nieuwe poging vragen.
AITJE Coder
Geef een taak in gewone taal. Een agent werkt in een eigen kopie van je repository, draait tests en legt het resultaat ter review voor. Op een BOSGAME, Mac mini, lokale server, cloudserver of extern endpoint: jij kiest de omgeving, AITJE richt hem in.
Dit geldt voor de lokale functies. Gebruik je externe modellen of online tools, dan kunnen gegevensdeling, kosten en afhankelijkheden verschillen.
Vanaf €799 met basisinstallatie, excl. btw · Bekijk de prijsopbouw
Introductieaanbod voor Assistent en Coder voor de eerste 100 betaalde klanten. Beschikbaarheid wordt bevestigd in je offerte. Hardware en serverhuur apart.
Local AI · On edge · On premise
AITJE Coder is een AI Station met een autonome coding agent die code schrijft, tests uitvoert en pull requests voorbereidt in jullie repositories. Lokale AI-modellen draaien on edge of on premise op eigen hardware of een eigen server: jullie code in eigen beheer, zonder externe API-tokenkosten voor lokale modelverwerking.
Coding agents, lokale modellen en beheer op jullie eigen computer of server.
Local AI · on-premise · in eigen beheer
AITJE Coder is een complete omgeving voor coding agents op jullie gekozen hardware of server. Het taalmodel rekent in die omgeving of via een bewust gekozen extern endpoint. Developers geven taken in gewone taal, werken met hun eigen tools en keuren elk resultaat goed voordat er iets in de repository verandert.
“Repareer de btw-afronding en zorg dat alle tests slagen.”
Je geeft een taak in gewone taal. De agent werkt zelfstandig in een eigen kopie van de repository en legt het resultaat ter review voor. Geschikt voor tests, bugs, kleine features en dependency-updates.
Drie manieren van werken op dezelfde box. Je kunt ze naast elkaar gebruiken.Eén invoerveld, de repository en startbranch ernaast en voorbeeldtaken eronder. Links staat wat klaar is voor review.
Echte productopnamen, met een fictief demoproject. Kies desktop of de beschikbare telefoonopname en bekijk beide thema’s.
De agent werkt in een eigen kopie. Pas na jouw goedkeuring gaat er een pull request naar de repository.
Lokale modellen draaien op de box. De agent mag itereren tot de tests slagen, zonder teller bij een cloudaanbieder.
De web-app werkt op elk scherm binnen je netwerk. Bekijk een resultaat en keur het goed vanaf je telefoon.
De interface in het Nederlands, Engels, Duits en Frans, donker of licht. Opdrachten geef je in je eigen taal.
Wat je vraagt. Wat de code doet.
Een coding agent schrijft bestanden, voert code uit en werkt verder aan het resultaat. Bekijk een 3D-scène, een kleine webapp en een echte bugfix. Met de opdracht én de code erbij.
“Bouw een premium 3D-productpresentatie van een kinetisch object: drie messing ringen rond een glazen kern, op een donkere sokkel. Voeg echt licht, zachte schaduwen, materiaalkeuze, rotatie en een exploded view toe. Maak het responsive en respecteer minder bewegen.”
Three.js · JavaScript · WebGLimport * as THREE from "three";
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
import { RoomEnvironment } from "three/addons/environments/RoomEnvironment.js";
// A complete procedural product scene. Every visible part is real geometry.
const stage = document.querySelector("#stage");
const scene = new THREE.Scene();
scene.background = new THREE.Color("#e8e9df");
const camera = new THREE.PerspectiveCamera(35, 1, 0.1, 60);
camera.position.set(4.3, 2.9, 5.8);
const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: false });
renderer.setPixelRatio(Math.min(devicePixelRatio, 1.7));
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
renderer.toneMapping = THREE.ACESFilmicToneMapping;
renderer.toneMappingExposure = 1.35;
renderer.domElement.setAttribute(
"aria-label",
"Draaibaar kinetisch object met drie metalen ringen",
);
renderer.domElement.dataset.ready = "true";
renderer.domElement.tabIndex = 0;
stage.append(renderer.domElement);
const pmrem = new THREE.PMREMGenerator(renderer);
const environment = new RoomEnvironment();
const environmentMap = pmrem.fromScene(environment, 0.04);
scene.environment = environmentMap.texture;
environment.dispose();
pmrem.dispose();
const controls = new OrbitControls(camera, renderer.domElement);
controls.target.set(0, 1.65, 0);
controls.enablePan = false;
controls.enableZoom = false;
controls.enableDamping = true;
controls.minPolarAngle = Math.PI * 0.14;
controls.maxPolarAngle = Math.PI * 0.59;
const gold = new THREE.MeshPhysicalMaterial({
color: "#b99043",
metalness: 1,
roughness: 0.24,
clearcoat: 0.4,
});
const graphite = new THREE.MeshPhysicalMaterial({
color: "#242d28",
metalness: 0.72,
roughness: 0.31,
clearcoat: 0.35,
});
const glass = new THREE.MeshPhysicalMaterial({
color: "#b4d1c2",
metalness: 0.05,
roughness: 0.04,
transmission: 0.97,
thickness: 0.5,
ior: 1.45,
});
const warm = new THREE.MeshStandardMaterial({
color: "#e2ad47",
emissive: "#d89b25",
emissiveIntensity: 0.2,
metalness: 0.6,
roughness: 0.25,
});
const model = new THREE.Group();
scene.add(model);
renderer.domElement.addEventListener("keydown", (event) => {
if (!["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"].includes(event.key))
return;
event.preventDefault();
if (event.key === "ArrowLeft") model.rotation.y -= 0.15;
if (event.key === "ArrowRight") model.rotation.y += 0.15;
if (event.key === "ArrowUp")
camera.position.y = Math.min(camera.position.y + 0.2, 5);
if (event.key === "ArrowDown")
camera.position.y = Math.max(camera.position.y - 0.2, 1.5);
});
function part(geometry, material, parent = model) {
const mesh = new THREE.Mesh(geometry, material);
mesh.castShadow = true;
mesh.receiveShadow = true;
parent.add(mesh);
return mesh;
}
// Stepped pedestal, accent bands and a slender central support.
part(new THREE.CylinderGeometry(0.82, 0.9, 0.17, 96), graphite).position.y =
0.1;
part(new THREE.CylinderGeometry(0.815, 0.815, 0.018, 96), gold).position.y =
0.195;
part(new THREE.CylinderGeometry(0.69, 0.78, 0.11, 96), graphite).position.y =
0.25;
part(new THREE.CylinderGeometry(0.105, 0.19, 0.48, 48), gold).position.y = 0.52;
const assembly = new THREE.Group();
assembly.position.y = 1.86;
model.add(assembly);
const rings = [];
for (let index = 0; index < 3; index++) {
const pivot = new THREE.Group();
assembly.add(pivot);
const radius = 1.19 - index * 0.22;
const ring = part(
new THREE.TorusGeometry(radius, 0.045, 16, 144),
gold,
pivot,
);
ring.rotation.x = index === 1 ? Math.PI / 2 : 0;
// Visible precision marks around the outer gimbal.
for (let mark = 0; mark < 48; mark++) {
const angle = (mark / 48) * Math.PI * 2;
const tick = part(
new THREE.BoxGeometry(0.009, mark % 4 === 0 ? 0.048 : 0.022, 0.007),
graphite,
ring,
);
tick.position.set(
Math.sin(angle) * radius,
Math.cos(angle) * radius,
0.045,
);
tick.rotation.z = -angle;
}
for (const direction of [-1, 1]) {
const pin = part(
new THREE.CylinderGeometry(0.078, 0.078, 0.105, 32),
graphite,
pivot,
);
pin.rotation.z = Math.PI / 2;
pin.position.x = radius * direction;
part(new THREE.SphereGeometry(0.046, 20, 16), gold, pivot).position.x =
(radius + 0.065) * direction;
}
rings.push(pivot);
}
part(new THREE.IcosahedronGeometry(0.43, 4), glass, assembly);
part(new THREE.IcosahedronGeometry(0.21, 1), warm, assembly);
const meridian = part(
new THREE.TorusGeometry(0.46, 0.012, 12, 96),
gold,
assembly,
);
meridian.rotation.x = Math.PI / 2;
// A restrained floor and real soft contact shadows anchor the object.
const ground = part(
new THREE.PlaneGeometry(200, 200),
new THREE.ShadowMaterial({ color: "#526047", opacity: 0.17 }),
scene,
);
ground.rotation.x = -Math.PI / 2;
ground.position.y = -0.005;
ground.castShadow = false;
scene.add(new THREE.HemisphereLight("#ffffff", "#777f66", 2.4));
const key = new THREE.DirectionalLight("#fff5dd", 4.5);
key.position.set(-3, 7, 5);
key.castShadow = true;
key.shadow.mapSize.set(1536, 1536);
key.shadow.camera.left = -4;
key.shadow.camera.right = 4;
key.shadow.camera.top = 5;
key.shadow.camera.bottom = -3;
key.shadow.normalBias = 0.025;
key.shadow.blurSamples = 12;
scene.add(key);
const rim = new THREE.DirectionalLight("#e4edf6", 2.5);
rim.position.set(4, 3, -4);
scene.add(rim);
const motion = matchMedia("(prefers-reduced-motion: reduce)");
let playing = !motion.matches;
let exploded = 0;
let visible = true;
let lastTime = 0;
let elapsed = 0;
const toggle = document.querySelector("#motion");
function updateToggle() {
toggle.textContent = playing ? "Pauzeren" : "Draaien";
toggle.setAttribute("aria-pressed", String(playing));
}
toggle.addEventListener("click", () => {
playing = !playing;
updateToggle();
});
motion.addEventListener("change", () => {
playing = !motion.matches;
updateToggle();
});
updateToggle();
document.querySelector("#explode").addEventListener("input", (event) => {
exploded = Number(event.target.value) / 100;
document.querySelector("#explode-value").textContent =
`${event.target.value}%`;
});
for (const button of document.querySelectorAll("[data-finish]")) {
button.addEventListener("click", () => {
gold.color.set(button.dataset.finish);
document
.querySelectorAll("[data-finish]")
.forEach((item) =>
item.setAttribute("aria-pressed", String(item === button)),
);
});
}
document.querySelector("#reset").addEventListener("click", () => {
model.rotation.y = 0;
camera.position.set(4.3, 2.9, 5.8);
controls.target.set(0, 1.65, 0);
});
const resize = new ResizeObserver(() => {
const { width, height } = stage.getBoundingClientRect();
if (!width || !height) return;
renderer.setSize(width, height, false);
camera.aspect = width / height;
camera.updateProjectionMatrix();
});
resize.observe(stage);
new IntersectionObserver(([entry]) => {
visible = entry.isIntersecting;
}).observe(stage);
document.addEventListener("visibilitychange", () => {
lastTime = 0;
});
function frame(time) {
const delta = lastTime ? Math.min((time - lastTime) / 1000, 0.05) : 0;
lastTime = time;
if (visible && !document.hidden) {
if (playing) elapsed += delta;
rings.forEach((ring, index) => {
ring.rotation.set(
0.22 + Math.sin(elapsed * 0.32 + index * 1.4) * 0.52,
elapsed * (0.1 + index * 0.075) + index * 0.65,
index * 0.18,
);
ring.position.x = exploded * (index - 1) * 0.7;
ring.position.y = exploded * index * 0.12;
});
controls.update();
renderer.render(scene, camera);
}
requestAnimationFrame(frame);
}
requestAnimationFrame(frame);
Draai het object, wissel tussen messing, staal en koper en bekijk hoe de ringen in elkaar zitten. De broncode hiernaast bouwt de scène die je ziet.
De 3D-scène en webapp zijn speciaal voor deze pagina uitgewerkt. Ze tonen soorten programmeerwerk, geen gemeten output van een specifieke lokale modelrun. De bugfix en productopnamen komen uit de echte Coder-demo met fictieve bedrijfsgegevens. Model, opdracht en controles bepalen het resultaat.
Van opdracht tot pull request
Een taak voor AITJE Coder doorloopt altijd dezelfde vijf stappen. De agent doet het werk in een eigen kopie. Jij beoordeelt het resultaat en beslist wat er naar de repository gaat.


Kies de repository en startbranch, typ de opdracht en druk op Enter. Onder Opties kies je het model, webzoeken, koppelingen en het aantal rondes. Met Inplannen zet je dezelfde opdracht op een vast moment.
Echte schermen van AITJE Coder, gemaakt op 18 oktober 2026 op een AITJE-box met het model tiel-coder-35b. Bakkerij Demo en het project facturatie zijn fictief. De stappen tonen drie taken uit hetzelfde demoproject; stap 3 tot en met 5 horen bij dezelfde taak.
Een opdracht typen, starten en de agent zien lezen. Bekeken bestanden zijn geel omlijnd.

De status, het verslag met de tests en de gewijzigde regels. Daarna de knop die de pull request opent.

Aansluiten op jullie ontwikkelproces
Een los codeblok is pas het begin. Coder verbindt de opdracht met de repository, de startbranch, de gewijzigde bestanden en de review. Zo kan je team het resultaat behandelen als een normale codewijziging.
De agent werkt op de code die je aanwijst. In de diff zie je iedere gewijzigde regel. Het verslag vertelt wat is onderzocht, aangepast en getest. Je kunt per bestand commentaar geven en om een nieuwe poging vragen.
De goedgekeurde wijziging krijgt een plek in jullie Git-geschiedenis. Collega’s kunnen reviewen, bestaande CI kan de branch controleren en jullie eigen mergebeleid blijft de laatste stap. Een geopende pull request is nog geen automatische merge of publicatie.
De beheerder bepaalt welke repositories een developer mag gebruiken en of die zelf repositories mag verbinden. De agent werkt in een eigen werkmap. Voor toegang tot Git wordt de afgesproken verbinding ingericht, met tokens of een ondersteunde GitHub-login.
Code, tests en geschiedenis blijven gewone projectbestanden en Git-wijzigingen. Je kunt de wijziging verder aanpassen, afwijzen of via jullie eigen proces terugdraaien. Je hoeft het werk niet uit een chat te kopiëren om er een beoordeelbare wijziging van te maken.
Een coding agent met een werkritme
Plan onderhoud, controles of een concrete programmeeropdracht op de serveromgeving. De server zet het werk op het juiste moment in de wachtrij; je browser mag dicht. Het resultaat verschijnt weer bij de taken die je kunt reviewen.
Echte productopname met een fictief demoproject. De geplande taak is zichtbaar onder Ingepland.
De serveromgeving en taakverwerking moeten beschikbaar zijn. Een planning gebruikt de rechten en grenzen van de eigenaar. Externe repositories en webhooks moeten bereikbaar zijn. Met meerdere rondes kan de agent doorwerken aan de opdracht; beoordelen en publiceren blijven onderdeel van het afgesproken reviewproces.
Lees. Bouw. Test. Verbeter.
Een coding agent gebruikt context, schrijft code en probeert opnieuw. Bij een lokaal model gebeurt dat op jullie eigen rekenkracht. Ook als een opdracht veel modelrondes vraagt.
externe tokenkosten
per opdracht en per miljoen tokens
De agent gebruikt wél tokens. Bij lokale inferentie koop je daarvoor geen tokens in bij een externe AI-aanbieder. De beschikbare hardware, context en ingestelde gebruiksgrenzen bepalen hoeveel werk tegelijk past.
Software, hardware, stroom en onderhoud hebben eigen kosten. Kies je bewust een extern model, dan gelden de tarieven van die aanbieder en de ingestelde budgetten.
Bekijk de volledige prijsopbouwWachtrij, planning en rondes
Zet taken in de wachtrij of plan ze vooruit. De agent werkt ze één voor één af. Het resultaat staat klaar voor review wanneer jij er weer bent.

Eén omgeving · desktop en mobiel
Een taak indienen, het resultaat bekijken of de gewijzigde bestanden beoordelen. Ook op je telefoon, via dezelfde web-app. Het model en de code blijven op de gekozen serveromgeving; je telefoon is de toegang.
Binnen het eigen netwerk. Toegang van buitenaf richten we in met een VPN of afgesproken beveiligde toegang en HTTPS.


Je eigen tools
De box spreekt de taal van de bekende tools. Je verandert alleen het adres en de sleutel; je workflow blijft hetzelfde.
Voor elk van deze tools staat een configuratie klaar. Lange sessies in Claude Code, OpenCode, Codex en Aider worden automatisch samengevat voordat ze vastlopen.
# eenmalig: de CLI van de box
curl -fsSL http://aitje-coder.local/connect/cli | bash
aitje-coder connect aitje-coder.local
# configuratie voor je tool, en een sessie met Git-context
aitje-coder config opencode
aitje-coder session --taak "Bug oplossen" opencode Liever klikken? De pagina /connect op de box geeft het certificaat, je persoonlijke sleutel en een kant-en-klare configuratie per tool.
Mijn sessies toont het werk vanuit je eigen tools, met modelverzoeken, tokens, repository en branch. Prompts en antwoorden worden daar niet bewaard.
Ook met de box als adres maken sommige tools uit zichzelf contact met hun maker: een modelcatalogus, telemetrie of een versiecheck. Dat is geen prompt en geen code. We hebben het per tool gemeten. /connect geeft bij elke tool de instelling die het uitzet. Voor Continue vonden we geen schakelaar.

Jouw omgeving, jouw code
AITJE Coder draait op een BOSGAME, een geschikte Mac mini, jullie eigen lokale server, een cloudserver of een externe omgeving. We kunnen applicatie en modellen samen installeren of inference via een afzonderlijk endpoint inrichten. Jullie kiezen waar je je onafhankelijker door voelt; AITJE stemt hardware, toegang en beheer daarop af.
Eén agenttaak tegelijk. Standaard met tiel-coder-35b, dat tot 128k tokens per gesprek onthoudt. Op echte hardware doorgemeten.
Meer geheugen voor grotere modellen en meer gebruik tegelijk. Metingen op deze uitvoering volgen; we stemmen de capaciteit af in de proef.
Met een lokaal model blijven opdrachten en code op de box. Programmeren met de geïnstalleerde modellen werkt ook zonder internet, zolang box en netwerk beschikbaar zijn.
AITJE Coder AI Station
Een ingerichte ontwikkelomgeving voor coding agents. Het lokale model, de agent en het beheer draaien op de afgesproken computer of server. Developers verbinden hun browser, terminal of editor met die omgeving.
In de standaard appliance-installatie draait PostgreSQL als lokale dienst in de Coder-omgeving, met een eigen blijvend datavolume. Daar staan gebruikers, taken, planningen, reviewgegevens en de gebruikstellingen. Repositories en de werkmappen van de agent staan afzonderlijk op lokale opslag.
De browser bedient de web-app. Een terminal of editor kan met een persoonlijke sleutel het model op de box gebruiken; de bestanden van die client kunnen op de developerwerkplek staan. Bij taken via de Coder-webapp werkt de agent in zijn eigen werkmap op de box.
Wie taken mag indienen of goedkeuren, welke repositories een developer mag gebruiken, welke modellen en tools toegankelijk zijn en welke limieten gelden. Budgetten, persoonlijke sleutels, supporttoegang en het logboek worden centraal beheerd.
Rekenkracht en agentwerk in eigen beheer, met de repositories en reviewafspraken van het team. AITJE selecteert en test modellen en stelt de tools, rechten en wachtrij in. Je team kan bouwen zonder een externe tokenrekening voor lokale inferentie.
Het lokale model is beschikbaar zonder een externe model-API. Werken met lokaal aanwezige code kan doorgaan zolang box, lokale diensten en netwerk werken. Een nieuwe clone, pakketdownload of pull request bij een externe Git-dienst kan wel op die dienst moeten wachten. Lokale inference en externe Git-bereikbaarheid zijn afzonderlijke afhankelijkheden.
postgres-data-volume. /var/aitje/repos en /var/aitje/work. AI Station beschrijft de ingerichte combinatie van omgeving, model en software. De softwareprijs, installatie en benodigde hardware of hosting staan afzonderlijk in de prijsopbouw en offerte.
Kies je rekenkracht én je modelaanbieder
Waar AITJE draait en waar het taalmodel rekent, zijn twee keuzes. Alles op eigen hardware, een model op jullie server of een gekoppeld inference-endpoint: we richten de combinatie in die past bij jullie werk.
Toegang, werkwijze en verbruik
AITJE Coder is meer dan een model op een server. De beheeromgeving bepaalt wie in welke code mag werken, met welke werkwijze en hulpmiddelen, en binnen welke grenzen.
Verbind een repository één keer en regel de toegang per repository: inloggen bij GitHub met een code, een token, of intrekken. Zonder toegang kan de agent een openbare repository lezen, maar geen pull request openen.
Iedere developer krijgt een eigen account en een persoonlijke sleutel met eigen limieten. Uitnodigen gaat met een link of QR-code die 24 uur werkt. Elke beheerhandeling komt in gewone woorden in het logboek.
In één montage
Repositories, skills, koppelingen, budgetten en sessies. De gele rand wijst telkens de regel aan die bepaalt wat de agent mag.

Van de eerste taak tot het dagelijks beheer
De agent is het begin. Repositories, modellen, rechten, planning, skills, koppelingen en beheer maken hem bruikbaar voor je team. Bekijk wat er allemaal in Coder zit.
Nieuwe taak · Mijn sessies · Wachtrij & planning · Instellingen
Kies repository, startbranch, model en webzoeken. Werk waar nodig over gekoppelde repositories, in een eigen afgeschermde werkmap.
Volg bestanden, commando’s, tests en fouten. Stop een taak met bevestiging; een vastgelopen herhaling krijgt een begrensde herstart.
Bekijk wijzigingen naast of onder elkaar. Geef per bestand een oordeel en opmerking. Vergelijk runs of laat een aanpassing opnieuw uitvoeren.
Een reviewer opent de pull request naar GitHub, GitLab of Gitea. GitHub-login met een code en een fork bij ontbrekend schrijfrecht worden ondersteund.
Orden of pauzeer de rij. Plan eenmalig, dagelijks, wekelijks of via cron. Start bij een push of GitHub-/Linear-issue en laat meerdere rondes doorwerken.
Werk je zelf in een editor of chat, dan krijgt dat voorrang op de batchtaken. De wachtrij maakt zichtbaar wat wacht, draait of op review staat.
Echte opname: verslag en gewijzigde bestanden van de lokale bugfix.
Gebaseerd op de huidige productfuncties. Beschikbaarheid van modellen, externe diensten, hardwarecapaciteit en aanvullende inrichting stemmen we af. De getoonde screenshots bevatten fictieve bedrijfsgegevens; de agenttaken in die opnamen zijn echt uitgevoerd.
Hoe goed programmeren lokale modellen nu al?
De lokale agent heeft al bugs gerepareerd, functies toegevoegd en tests geschreven. Je ziet dat in de echte productopnamen. Voor modelkeuze kijken we daarnaast naar eigen proeven én gepubliceerde benchmarks, met de taak en hardware erbij.
Drie Python-opdrachten, elk tweemaal per model, via de echte Coder-stack. Verborgen tests controleerden kortingscodes, een afrondingsbug en een CLI-tool. Zo beoordeel je een uitgevoerde taak in plaats van alleen de snelheid van losse tokens.
BOSGAME M6 · 32 GB. Kleine proef op één repository: zes runs per model, geen algemeen slagingspercentage voor alle programmeertaken. Doorlooptijden bevatten de modelwissel en zijn indicatief.
Mediaan van indienen tot eindstatus: 553 seconden
Mediaan van indienen tot eindstatus: 384 seconden
Mediaan van indienen tot eindstatus: 831 seconden
Deze cijfers uit Qwens modelkaart laten verschillende sterke punten zien. Ze meten een andere opstelling dan de AITJE-proef hierboven. Een score voorspelt niet automatisch het resultaat op jullie code of op een bepaalde BOSGAME.
Schaal 0–100. Qwens eigen evaluatie; meetopzetten en agentharnassen verschillen. Bij SWE-bench Pro is de Opus-score overgenomen uit de officiële rapportage. Dit is geen BOSGAME-meting en geen garantie dat Qwen3.8 op iedere Coder-configuratie de standaard is. Quantisatie, context, tools en geheugen beïnvloeden de praktijk.
Bron: Qwen3.8-27B-modelkaart · gecontroleerd 18 oktober 2026Coder houdt modelkeuze los van de agent, de repositorykoppeling en de review. Een nieuw of kleiner model kan interessant zijn voor snelheid, geheugen of kwaliteit. AITJE test passende modellen met dezelfde soort opdrachten voordat we een nieuwe configuratie adviseren. De winst en het moment daarvan worden niet vooraf gegarandeerd; updates en modelinrichting spreken we apart af.
Van eerste gesprek tot eerste pull request
We kiezen en testen de configuratie met jullie taken. Kwaliteit, wachttijd en gelijktijdig gebruik beoordelen we op representatief werk.
We kijken welke repositories meedoen, wie ermee werkt en welke taken je wilt uitbesteden. Zo kiezen we de box en het model die erbij passen.
Plan een demo met jullie codeAITJE-servers · inference in het datacenter
Geen eigen hardware nodig? AITJE biedt meerdere servers in datacenters waarop taalmodellen en coding agents draaien. Gebruik een ingerichte omgeving of inference via een endpoint, specifiek afgestemd op jullie workflow.
Bespreek een AITJE-serverBesparingsdoel voor geschikte workflows, vergeleken met het gebruik van frontier-API’s van OpenAI, Anthropic en Gemini. We toetsen de modelkwaliteit, het volume en de kosten op jullie eigen taken; de onderbouwing en tarieven komen in je voorstel.
Hosting, rekenkracht en inference worden apart begroot. De haalbare besparing verschilt per workflow en is geen algemene prijsgarantie.De investering in jullie eigen coding agents
Je koopt AITJE Coder per omgeving. Voor lokaal modelgebruik is er geen externe tokenrekening. Hardware, energie en onderhoud horen wel bij de totale kosten; die maken we vooraf zichtbaar.
Blijvend gebruik van de opgeleverde versie. Het aantal gebruikers en taken tegelijk past binnen de capaciteit van de gekozen omgeving.
€799
Product + basisinstallatie · excl. btw
Hardware of hosting komt er apart bij · op offerte
Regulier vanaf €898. Introductieaanbod voor Assistent en Coder voor de eerste 100 betaalde klanten. Beschikbaarheid wordt bevestigd in je offerte.
Laat AITJE het regelenInstalleren op een vooraf afgestemde, geschikte hardware- of serveromgeving, de werking testen en uitleg geven. Korte nazorg spreken we af. De basisinstallatie is begroot op twee tot tweeënhalf uur.
Hardware en hosting kies je erbij
De productprijs hierboven is voor software en basisinstallatie. Nieuwe hardware, serverhuur en betaalde inference komen daar apart bij. Met bestaande geschikte hardware kan de aanschaf van een nieuw apparaat vervallen.
BOSGAME M5 / M6 · Mac mini · eigen hardware · eigen server · Hetzner · DigitalOcean · AITJE-datacenter
Eigen hardware, een externe server, cloud of een combinatie: vertel waar jullie onafhankelijker van willen worden. AITJE zoekt een passende technische en financiële inrichting.
Oplossing en totale investering op offerte. Alle bedragen exclusief btw; externe aanbieders en doorlopend gebruik worden afzonderlijk afgesproken.
Vraag deze opstelling aanLokale modellen, de agent met review en pull requests, wachtrij en planning, de koppeling met je eigen tools en het beheer.
Geen externe tokenkosten voor lokale modellen. Sta je externe modellen toe, dan rekent die aanbieder zelf af; budgetten begrenzen dat.
Ondersteuning en onderhoud zijn optioneel, vanaf €49 per maand. Updates en nieuwe modellen spreken we apart af.
Cases
Van interne kennis doorzoeken tot werkprocessen verbinden. Ontdek de toepassing, de vraag en de aanpak.


Development agency / Assistent, Coder & modelbeheer
Voor een development agency richtte AITJE een gezamenlijke AI-omgeving in met Assistent, Coder en tien modellen om uit te kiezen. Een gedeelde tokenpot van €350 per maand vervangt negen abonnementen van €200. Via Asana zijn modelgebruik en tokenkosten per taak terug te vinden.
Bekijk de aanpak

Marketingbureau / leveldesign & eigen coding agent
Een marketingbureau nam een bestaande mobiele puzzelgame over, maar liep vast bij het maken van nieuwe levels. AITJE analyseerde de game, bouwde een herbruikbaar leveldesignsysteem en koppelde AITJE Coder aan Qwen op een eigen server. Nu maakt het bureau 25 nieuwe levels per week vanuit één opdracht in OpenCode.
Bekijk de aanpak

Contactsnoeren / 3D-catalogus & workflowoptimalisatie
Voor een partner in contactsnoeren bouwde AITJE een workflow die productgegevens en technische tekeningen uit WordPress omzet naar 3D-modellen. AITJE Coder stuurt Blender aan; Three.js maakt de GLB-bestanden bruikbaar op de website. Na optimalisatie daalden de API-kosten van circa €9 naar €0,11–€0,18 per product.
Bekijk de aanpakTechnische details
Werken met de geïnstalleerde modellen, programmeren via GUI, API, CLI en lokaal beschikbare harnassen, en lokale projecten lezen, wijzigen en uitvoeren.
Online documentatie opzoeken, nieuwe modellen downloaden, packages en Git-diensten gebruiken, en ondersteuning op afstand als dat is afgesproken.
Snelheid, modelvariant, contextcapaciteit en het aantal gelijktijdige gebruikers hangen af van de hardware. Voor een groter team kan een server of meer dan één omgeving nodig zijn.
Configuraties staan klaar voor Claude Code, OpenCode, Codex CLI, Aider, Cline, Roo Code, Kilo Code, Continue en Zed. Claude Code praat rechtstreeks met de Anthropic Messages-API van de box, de andere tools met een OpenAI-compatibel endpoint. Coder belooft geen werking met iedere tool.
Veelgestelde vragen
Een eigen omgeving voor coding agents: een lokaal alternatief voor diensten als Claude Code en Codex. Agents lezen en wijzigen je code, voeren commando's uit en werken taken iteratief af.
Ja. Claude Code, OpenCode, Codex, Aider, Cline, Continue en andere tools verbinden met jullie eigen modelomgeving. De pagina /connect in de AITJE-omgeving geeft het certificaat, je persoonlijke sleutel en een kant-en-klare configuratie per tool. Taken voor de agent geef je in de web-app.
Het losse product kost €699 per omgeving, zonder licentieprijs per gebruiker. Met basisinstallatie, testen, uitleg en afgesproken korte nazorg geldt een introductieprijs van €799; de reguliere prijs begint bij €898. Introductieaanbod voor Assistent en Coder voor de eerste 100 betaalde klanten. Beschikbaarheid wordt bevestigd in je offerte. Hardware, serverhuur en aanvullende inrichting worden apart begroot. Alle bedragen zijn exclusief btw.
Voor veel taken wel, zeker als je ze klein en duidelijk maakt. Bekijk hoe een marketingbureau met AITJE Coder 25 nieuwe gamelevels per week maakt, of vraag een demo aan om de mogelijkheden voor je eigen werk te bespreken.
Ja. Een lokaal model toevoegen of verwijderen gebeurt in jullie modelomgeving; AITJE kan dat los of via een SLA voor je doen. Een beheerder kan daarnaast een externe aanbieder toevoegen. Die modellen staan standaard voor niemand open: je staat ze per gebruiker toe.
Je kunt met alle programmeertalen en frameworks werken; Coder is niet beperkt tot één vaste stack. Via skills kun je aanvullende documentatie, instructies en projectafspraken meegeven. De kwaliteit hangt af van het gekozen model en de beschikbare context, dus bij een specifieke stack testen we op jouw taken.
Ja. Coder kan bestaande projecten lezen, uitleggen en aanpassen. Je hoeft dus geen nieuw project te beginnen. Met projectdocumentatie en duidelijke instructies geef je de agent context over de structuur en de afspraken in je codebase.
Bij taken via de web-app werkt de agent in een afgeschermde container met een eigen kopie van de repository. Hij mag pakketten installeren, maar kan jullie interne netwerk niet bereiken. Je bepaalt per repository de toegang; voor GitHub log je eenmalig in met een code, zonder zelf een token te maken. Werk je met een eigen tool zoals Claude Code of OpenCode, dan bepaalt die tool welke bestanden en commando's de agent mag gebruiken.
Ja. Bij taken via de web-app verandert er niets tot je het resultaat goedkeurt. Je leest het verslag van de agent en ziet elke gewijzigde regel. Goedkeuren opent een pull request bij GitHub, GitLab of Gitea; Wijzigingen nodig keurt af of laat de agent opnieuw beginnen. Bij interactief gebruik bepaalt je eigen tool welke goedkeuringsmomenten er zijn.
Ja. Coder kan tests schrijven, bestaande tests uitvoeren en fouten onderzoeken. De agent kan daarvoor je code, foutmeldingen en testresultaten gebruiken om een wijziging voor te stellen. Je kunt de tests en wijzigingen vervolgens zelf beoordelen.
Nee. De omgeving kan op een BOSGAME M5/M6, een geschikte Mac mini, bestaande hardware, een lokale server, een cloudserver bij bijvoorbeeld Hetzner of DigitalOcean of een AITJE-server draaien. Applicatie, agents en modelverwerking kunnen samen of afzonderlijk worden ingericht. AITJE zoekt de omgeving die past bij jullie workflow en gewenste onafhankelijkheid.
Ja. Je kunt taken eenmalig of herhaald plannen, met ondersteunde tijdschema’s en push- of issuegebeurtenissen. De server zet werk in de wachtrij. De agent werkt in een eigen werkkopie, toont wijzigingen en controles en bereidt na review een pull request voor. De benodigde server, rechten, modellen en Git-diensten moeten beschikbaar zijn.
De genoemde productprijs met basisinstallatie is geen totaalprijs inclusief hardware. Nieuwe hardware, serverhuur, aanvullende inrichting, ondersteuning en eventuele externe inference worden apart begroot. Kies je een eigen model op eigen rekenkracht, dan is er geen externe API-tokenrekening; voor betaalde providers gelden hun tarieven.
Een beheerder kan een ondersteund extern model of OpenAI-compatibel endpoint toevoegen, waaronder een geschikte Nebius Token Factory-koppeling. AITJE biedt daarnaast eigen datacenterservers voor modellen, coding agents en workflowgerichte inference. We testen modelkwaliteit en gereedschapsgebruik op jullie taken en leggen toegang, capaciteit en kosten vooraf vast.
Ja. Vraag een bezoek met hardware aan of kies een demo-endpoint voor een proef op afstand. Het contactformulier neemt Coder en de gekozen demo-optie over. Je kunt daar ook je voorkeur voor hardware of hosting aangeven.
Bredere mogelijkheden
AITJE Coder laat zien wat AITJE kan bouwen. Andere workflows, koppelingen of hardware? Dat kan met AITJE Custom — AI op maat.
Bekijk AITJE CustomSAMEN VERDER MET AI
Laat AITJE de hardware kiezen en alles gebruiksklaar opleveren, of zie het eerst in een persoonlijke demo.