Naar de inhoud

AITJE Coder

Je eigen coding agents. Zonder externe tokenkosten.

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.

Verpakking van AITJE Coder

Local AI · On edge · On premise

Laat AI bouwen.
Jij houdt de regie.

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.

Bekijk AITJE Coder in actieBekijk op YouTube
AITJE Coder AI Station

Coding agents, lokale modellen en beheer op jullie eigen computer of server.

Bekijk waar alles draait

Local AI · on-premise · in eigen beheer

Een eigen AI-omgeving
die code schrijft.

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.

Een herkenbare opdracht

“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 web-app. Alles van één taak op één plek.
aitje-coder.local/
Wat wil je laten doen?
Wat wil je laten doen?

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.

Niets verandert zonder review

De agent werkt in een eigen kopie. Pas na jouw goedkeuring gaat er een pull request naar de repository.

Geen tokenrekening per opdracht

Lokale modellen draaien op de box. De agent mag itereren tot de tests slagen, zonder teller bij een cloudaanbieder.

Ook vanaf je telefoon

De web-app werkt op elk scherm binnen je netwerk. Bekijk een resultaat en keur het goed vanaf je telefoon.

Vier talen, twee thema's

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.

Dit kun je AITJE Coder
laten bouwen.

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.

De opdracht

“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 · WebGL
Broncode
247 regels
import * 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);
Compleet voorbeeld ↓
Het resultaatVoorbeeldgeneratie · prompt naar code
Three.js · JavaScript · WebGL

Een idee dat je van alle kanten kunt bekijken.

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.

  • Geometrie, materialen en belichting in code
  • Bediening met muis, aanraking en toetsenbord
  • Zelfstandig project, verder uit te bouwen

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

Geef de opdracht.
Houd de regie.

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.

AITJE-uil bij een werkstation met echte code-review op het scherm
Productopname van de code-review
Productillustratie met echte Coder-schermen · fictief demoproject
aitje-coder.local/
Je beschrijft de taak zoals je het een collega vraagt.
Stap 01 van 05

Je beschrijft de taak zoals je het een collega vraagt.

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.

  • Voorbeeldtaken en skills vullen het veld voor je in
  • Een taak kan in meer dan één repository werken
  • Elke taak start vanaf een schone kopie

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.

Van leeg veld naar een agent die werkt

Een opdracht typen, starten en de agent zien lezen. Bekeken bestanden zijn geel omlijnd.

Een taak startenEchte schermen
Een taak starten
Echte screenshots met een fictief demoproject. De agenttaken zijn werkelijk uitgevoerd; de montage toont geen doorlooptijd.

Van verslag naar goedkeuring

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

Een resultaat beoordelenEchte schermen
Een resultaat beoordelen
Echte screenshots met een fictief demoproject. De agenttaken zijn werkelijk uitgevoerd; de montage toont geen doorlooptijd.

Aansluiten op jullie ontwikkelproces

AI-code die past
in jullie Git-werkwijze.

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.

  1. Jullie repositoryEen gekozen uitgangspunt
  2. Eigen werkkopieDe agent leest, wijzigt en test
  3. Jouw reviewDiff, verslag en opmerkingen
  4. Pull requestNa menselijke goedkeuring
  5. Jullie mergeprocesEigen checks en afspraken

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.

De pull request houdt het controleerbaar.

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.

Een agent krijgt afgebakende toegang.

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.

Het resultaat blijft van jullie team.

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

Je hoeft niet voor iedere taak
op Starten te drukken.

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.

  • Maandag · 07:00Wekelijkse controle van dependenciesHet echte geplande voorbeeld uit de productopname.
  • Elke werkdag · voorbeeldDraai de tests en onderzoek wat faaltEen eigen opdracht, met de bronnen en rechten van de eigenaar.
  • Bij een gebeurtenisEen push of een nieuw issue als startpuntVia een ingerichte webhook voor de ondersteunde Git-/issue-omgeving.
aitje-coder.local/queue
Echte wachtrij van Coder met de wekelijkse geplande dependencycontrole

Echte productopname met een fictief demoproject. De geplande taak is zichtbaar onder Ingepland.

EenmaligDagelijksWerkdagenWekelijksEigen cron-schemaBij een pushGitHub-issueLinear-issue

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.

De tokens tellen door.
De externe rekening niet.

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.

Lokale modelverwerking€0

externe tokenkosten
per opdracht en per miljoen tokens

01Code lezenBestanden en context
02BouwenBestanden wijzigen
03ControlerenTesten en verbeteren
Alle modelrondes op de eigen box of server

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 prijsopbouw

Wachtrij, planning en rondes

Werkt door terwijl
jij iets anders doet.

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.

  • Inplannen zoals het jullie uitkomtElke werkdag, dag of week, één keer op een datum, bij een push, bij een issue uit GitHub Issues of Linear, of met een eigen cron-schema.
  • Rondes achter elkaarLaat de agent 2 tot 20 keer doorwerken op zijn eigen resultaat. Jij beoordeelt alleen het eindresultaat.
  • Developers gaan voorWie in de editor of chat met het model werkt, gaat voor. Wachtende taken starten zodra het stil is, en uiterlijk 10 minuten na het indienen.
  • Een melding als het klaar isPer mail, Slack, Teams of Mattermost, bij klaar voor review, bij mislukken met de reden erbij en na het mergen.
Wachtrij & planningEchte schermen
Wachtrij & planning
Echte wachtrijpagina. De melding bovenaan verscheen tijdens de opnamen echt, omdat er tegelijk in de chat werd gewerkt. Mattermost en mail zijn getest tegen echte servers; Slack en Teams nog niet.

Eén omgeving · desktop en mobiel

Je agent werkt.
Jij houdt overzicht.

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.

BrowserEigen omgeving

Binnen het eigen netwerk. Toegang van buitenaf richten we in met een VPN of afgesproken beveiligde toegang en HTTPS.

Lokale AITJE-box met de Coder-webapp op een telefoon
Echte mobiele interface van AITJE Coder
Productillustratie met echte Coder-schermen · fictief demoproject

Je eigen tools

Werk met de coding agents
die je team al kent.

De box spreekt de taal van de bekende tools. Je verandert alleen het adres en de sleutel; je workflow blijft hetzelfde.

Claude CodeRechtstreeks, via de Anthropic Messages-API van de box
OpenCodeAanbevolen, met kant-en-klare configuratie
Codex CLIConfiguratie via aitje-coder config codex
AiderOok met sessies in het overzicht
Cline · Roo Code · Kilo CodeIn VS Code
Continue · ZedAanvullen en chat in je editor

Voor elk van deze tools staat een configuratie klaar. Lange sessies in Claude Code, OpenCode, Codex en Aider worden automatisch samengevat voordat ze vastlopen.

Koppelen in drie regels
# 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.

aitje-coder.local/sessies
Mijn sessies: werk vanuit clients met modelverzoeken en tokens

Ook editorwerk is zichtbaar

Mijn sessies toont het werk vanuit je eigen tools, met modelverzoeken, tokens, repository en branch. Prompts en antwoorden worden daar niet bewaard.

Wat tools zelf naar buiten sturen

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.

Op je telefoonEchte schermen
Op je telefoon
Echte schermen op een telefoon, binnen het eigen netwerk.

Jouw omgeving, jouw code

Jullie AI, jullie keuze.
Van eigen hardware tot cloudserver.

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.

32 GBVoor één developer

Eén agenttaak tegelijk. Standaard met tiel-coder-35b, dat tot 128k tokens per gesprek onthoudt. Op echte hardware doorgemeten.

128 GBVoor een team

Meer geheugen voor grotere modellen en meer gebruik tegelijk. Metingen op deze uitvoering volgen; we stemmen de capaciteit af in de proef.

Je laptop of telefoonBrowser · terminal · editor
↓ eigen netwerk of beveiligde verbinding
Jullie AITJE Coder-omgevingLokaal model · agent in een afgeschermde container · web-app · database

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.

Wat verlaat jullie omgeving, en wanneer?

Opdrachten en code
Blijven op de box wanneer je een lokaal model gebruikt. Dat is de standaard.
Pakketten installeren
De agent mag het internet op om pakketten te installeren. Jullie netwerk is afgeschermd: geen NAS, printers of servers.
Op het web zoeken
Via een zoekdienst op de box. Alleen de zoekvraag gaat naar buiten, niet je opdracht of code. Per box of per taak uit te zetten.
Een goedgekeurde wijziging
Gaat als pull request naar jullie Git-server: GitHub, GitLab of Gitea.
Externe modellen
Standaard uit. Een beheerder kan een aanbieder toevoegen en per gebruiker toestaan. Wie zo'n model kiest, stuurt opdracht en code naar die aanbieder.
MCP-koppelingen
Alleen bij taken waarvoor je ze aanvinkt. Wat de agent doorgeeft, kan code bevatten.
Meldingen
Status en een vaste reden bij een mislukte taak. Nooit code of foutmeldingen naar een chatkanaal.
Telemetrie en support
Telemetrie staat standaard uit. Support op afstand loopt via een tunnel die jullie zelf aan- en uitzetten.

AITJE Coder AI Station

Een eigen AI Station.
Modellen, software en data bij elkaar.

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.

Je werkplekBrowser, terminal of editor
Beveiligde verbindingHTTPS · toegang per gebruiker
Jullie AI StationOp locatie / eigen server / cloud
AITJE-softwareAgents, taken en review
Lokaal modelRekenwerk op eigen hardware
PostgreSQLGebruikers, taken en beheer
Git en werkmappenRepositorykopieën en code

Waar staat de database?

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.

Wat staat op het apparaat van de gebruiker?

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.

Wat houdt de beheerder in de hand?

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.

Wat levert het AI Station op?

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.

Als een externe AI-dienst een storing heeft

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.

Technische opslag in de standaardinstallatie
Database
Lokale PostgreSQL-dienst met een blijvend postgres-data-volume.
Git en agentwerk
Standaard onder /var/aitje/repos en /var/aitje/work.
Modelgewichten
Lokale modelcache in een afzonderlijk blijvend volume. Geen modeldownload per opdracht.

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

Local AI als basis.
Externe inference als keuze.

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.

01 / Eigen modelomgeving

Op je hardware of server

Het model draait op jullie BOSGAME, Mac mini, lokale server of eigen cloudcapaciteit. De verwerking blijft in die gekozen omgeving; bij eigen inferentie is er geen externe API-tokenrekening.

Kies hardware of hosting
02 / Nebius Token Factory

Krachtige open modellen via API

Gebruik frontier open modellen zoals de beschikbare Kimi-, DeepSeek-, Qwen- en GPT-OSS-modellen via beheerde inference. AITJE helpt met het model, de endpointkoppeling, toegang en gebruiksbudgetten.

Externe verwerking en tarieven per gebruik. Publieke endpoints hebben geen vaste landgarantie; een vereiste locatie stemmen we afzonderlijk af.

Nebius · API en modellen
03 / Externe modelaanbieders

OpenAI, Claude en andere providers

Een extern model of compatibel endpoint kan onderdeel zijn van jullie inrichting. We stemmen providerondersteuning, modelkwaliteit, toegang en betaalde API-kosten vooraf af op de agent en jullie workflow.

Bespreek jullie modelkeuze

Toegang, werkwijze en verbruik

Geef je team ruimte.
Houd zelf de regie.

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.

Jij bepaalt in welke code de agent mag werken.

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.

  • GitHub, GitLab en Gitea, ook een eigen Git-server met een eigen certificaat
  • Twee repositories koppelen voor taken die in beide werken
  • Toegangstokens staan versleuteld in de database
aitje-coder.local/instellingen/repositories
Jij bepaalt in welke code de agent mag werken.

Eén account per persoon. Drie rollen.

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.

  1. DeveloperTaken indienen, de agent volgen en wijzigingen bekijken. Werkt met een eigen sleutel in de editor.
  2. ReviewerDaarnaast resultaten goedkeuren of afkeuren. Goedkeuren opent de pull request.
  3. BeheerderDaarnaast gebruikers, rollen, instellingen, supporttoegang en het logboek. De eigenaar van de box beheert accounts en sleutels.

In één montage

Vijf instellingen, kort achter elkaar.

Repositories, skills, koppelingen, budgetten en sessies. De gele rand wijst telkens de regel aan die bepaalt wat de agent mag.

Instellingen van AITJE CoderEchte schermen
Instellingen van AITJE Coder
Echte instellingenpagina's van het demo-account (rol reviewer). Een beheerder ziet daarnaast Gebruikers, Logboek, Support en Systeem.

Van de eerste taak tot het dagelijks beheer

Een coding agent.
Een complete omgeving eromheen.

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.

In de echte app

Nieuwe taak · Mijn sessies · Wachtrij & planning · Instellingen

01 / 05

Van nieuwe taak tot beoordeeld resultaat

01

Taken en meerdere repositories

Kies repository, startbranch, model en webzoeken. Werk waar nodig over gekoppelde repositories, in een eigen afgeschermde werkmap.

02

Live verloop en stoppen

Volg bestanden, commando’s, tests en fouten. Stop een taak met bevestiging; een vastgelopen herhaling krijgt een begrensde herstart.

03

Review per bestand

Bekijk wijzigingen naast of onder elkaar. Geef per bestand een oordeel en opmerking. Vergelijk runs of laat een aanpassing opnieuw uitvoeren.

04

Goedkeuring en Git

Een reviewer opent de pull request naar GitHub, GitLab of Gitea. GitHub-login met een code en een fork bij ontbrekend schrijfrecht worden ondersteund.

05

Wachtrij, planning en rondes

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.

06

Voorrang voor interactief werk

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.

aitje-coder.local/runs
Van nieuwe taak tot beoordeeld resultaat

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?

Code die tests doorstaat.
Daar begint de beoordeling.

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.

AITJE-praktijkproef · 17 september 2026

Een volledige agent-run
op de BOSGAME M6.

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.

tiel-coder-35b6 / 6 runs geslaagd

Mediaan van indienen tot eindstatus: 553 seconden

ornith-35b (1.0)5 / 6 runs geslaagd

Mediaan van indienen tot eindstatus: 384 seconden

ornith-1.5-35b4 / 6 runs geslaagd

Mediaan van indienen tot eindstatus: 831 seconden

Meetopzet en resultaten van de AITJE-proef
Gepubliceerde modelbenchmarks · Qwen3.8-27B en Opus 4.6 Max

Open modellen doen mee
aan serieus programmeerwerk.

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.

SWE-bench Pro

Softwarewijzigingen
Qwen3.8
61,7
Opus 4.6
53,4

Terminal Bench 2.1

Terminaltaken · Terminus
Qwen3.8
73,0
Opus 4.6
78,2

NL2Repo-Bench

Code genereren in repositories
Qwen3.8
42,3
Opus 4.6
47,6

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 2026

Een model kan veranderen. Jullie werkwijze blijft bruikbaar.

Coder 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

AITJE zet het neer.
Jullie gaan ermee werken.

We kiezen en testen de configuratie met jullie taken. Kwaliteit, wachttijd en gelijktijdig gebruik beoordelen we op representatief werk.

Begin bij het werk dat blijft liggen.

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 code
Jullie vraagset
01Repositories en Git-server
02Aantal developers en gelijktijdig gebruik
03Drie representatieve taken voor de proef

AITJE-servers · inference in het datacenter

Onze servers.
Jouw AI-workflow.

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-server
Richt je workflow op
tot 100× lagere API-kosten.

Besparingsdoel 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.

TaalmodellenCoding agentsInference API
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

Eén keer betalen.
Geen teller per opdracht.

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.

Local AI · in eigen beheerAITJE Coder-productverpakking
AgentEigen toolsBeheer
Eén product voor jullie omgeving.

Blijvend gebruik van de opgeleverde versie. Het aantal gebruikers en taken tegelijk past binnen de capaciteit van de gekozen omgeving.

AITJE regelt hetMet basisinstallatie

€799

Product + basisinstallatie · excl. btw

Hardware of hosting komt er apart bij · op offerte

AITJE Coder-software
€699
Installatie en inrichting
vanaf €199
Introductievoordeel
−€99
Product + basisinstallatie
€799

Regulier vanaf €898. Introductieaanbod voor Assistent en Coder voor de eerste 100 betaalde klanten. Beschikbaarheid wordt bevestigd in je offerte.

Laat AITJE het regelen

Installeren 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

Waar wil jij je AI laten draaien?

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

Zoek met ons een passende oplossing

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.

Product + basisinstallatie
€799
Hardware / hosting / inference
+ op offerte
Totale oplossing
Persoonlijke offerte

Oplossing en totale investering op offerte. Alle bedragen exclusief btw; externe aanbieders en doorlopend gebruik worden afzonderlijk afgesproken.

Vraag deze opstelling aan

De complete omgeving

Lokale modellen, de agent met review en pull requests, wachtrij en planning, de koppeling met je eigen tools en het beheer.

Lokale verwerking

Geen externe tokenkosten voor lokale modellen. Sta je externe modellen toe, dan rekent die aanbieder zelf af; budgetten begrenzen dat.

Hulp op jullie niveau

Ondersteuning en onderhoud zijn optioneel, vanaf €49 per maand. Updates en nieuwe modellen spreken we apart af.

Zelf installeren op geschikte hardware

De complete softwareomgeving voor €699 per omgeving, excl. btw. Installatie en hardware zijn niet inbegrepen; hulp kun je apart afspreken.

Bestel voor zelfinstallatie
Wat komt er eventueel aanvullend bij?
Hardware, serverhuur en energieKoppelen van extra Git-servers en repositoriesEigen uitbreidingen en koppelingen op maatUpdates, nieuwe modellen en begeleidingKosten van externe modellen, als je die toestaatReis-, locatie- en netwerkwerk

Alle bedragen zijn exclusief btw. Deze onderdelen worden vooraf apart begroot. Een demo helpt bepalen welke omgeving en inrichting passen.

Technische details

Voor wie het precies wil weten.

Zonder internet

Werken met de geïnstalleerde modellen, programmeren via GUI, API, CLI en lokaal beschikbare harnassen, en lokale projecten lezen, wijzigen en uitvoeren.

Met internet

Online documentatie opzoeken, nieuwe modellen downloaden, packages en Git-diensten gebruiken, en ondersteuning op afstand als dat is afgesproken.

Capaciteit

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.

Compatibiliteit

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

Vragen over Coder.

Wat is AITJE Coder?

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.

Werkt Coder met mijn eigen tools?

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.

Wat kost AITJE Coder?

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.

Zijn lokale modellen goed genoeg voor echt werk?

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.

Kan ik zelf een ander model toevoegen?

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.

Met welke programmeertalen en frameworks kan AITJE Coder werken?

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.

Kan AITJE Coder aan een bestaande codebase werken?

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.

Hoe bepaal ik welke bestanden en commando’s een coding agent mag gebruiken?

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.

Kan ik wijzigingen van AITJE Coder eerst beoordelen voordat ze worden toegepast?

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.

Kan AITJE Coder ook tests schrijven en fouten opsporen?

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.

Moet AITJE Coder op een box op kantoor draaien?

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.

Kan de coding agent taken inplannen en pull requests voorbereiden?

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.

Welke extra kosten komen er naast de productprijs bij?

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.

Kan Coder externe inference via Nebius of AITJE-servers gebruiken?

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.

Kan ik een fysieke demo of een demo-endpoint aanvragen?

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.

AITJE Custom: AI op maat, met een ekster als verpakkingsillustratie

Bredere mogelijkheden

Iets vergelijkbaars nodig, maar net anders?

AITJE Coder laat zien wat AITJE kan bouwen. Andere workflows, koppelingen of hardware? Dat kan met AITJE Custom — AI op maat.

Bekijk AITJE Custom

SAMEN VERDER MET AI

AITJE Coder voor jouw werk?

Laat AITJE de hardware kiezen en alles gebruiksklaar opleveren, of zie het eerst in een persoonlijke demo.