CelinQ Insights · No. 84 · Last technically reviewed: August 2026

How Does coArchi Work? A Technical Look at Archi's Git Collaboration Plugin

coArchi is the real, purpose-built answer to "how do I share an Archi model with a team" — this is what it actually does under the hood, not the marketing summary of it.

A NILUS perspective on collaborative modelling for Archi

Short answer. coArchi is a free Eclipse plug-in for Archi that turns Git into a practical model-sharing tool. Instead of committing one large, mostly-unreadable .archimate XML file, it splits the model into a folder of smaller, per-asset XML files (the "Grafico" format) so Git's own diff and merge machinery has a realistic chance of reconciling two people's changes automatically. Architects commit and publish from inside Archi's own menus — no separate Git client required — and coArchi shows a conflict dialog when the same concept was genuinely changed on both sides.

What coArchi actually is

coArchi — formally the archi-modelrepository-plugin, with a newer rewrite called coArchi2 in progress — is Archi's own official collaboration plugin, built and maintained by the same community behind Archi itself. It is not a third-party workaround bolted onto a tool that never expected to be shared; it is the ecosystem's purpose-built answer to exactly that gap, installed like any other Archi plugin through Archi's own Plugins manager.

What it adds is a Git-backed repository model, but a specific kind of one. A team creates an empty Git repository on a server they already run or already use — GitHub, GitLab, Bitbucket, or a self-hosted instance — and coArchi manages the connection between that remote repository and a local working copy of the model, entirely from inside Archi's interface. You do not need a separate Git client, and you do not need your architects to already know Git commands, though understanding roughly what a commit and a push do will make the experience considerably less confusing the first time something goes wrong.

The part that actually makes Git work for a model: Grafico

The detail that matters most, and the one a lot of high-level descriptions skip past, is what coArchi actually commits to Git. A raw .archimate file is a single XML document describing the entire model — every element, every relationship, every diagram, every property — serialised as one large, deeply nested block of markup. Handing a file like that to Git is technically possible but practically useless: two architects each renaming a different, unrelated element will typically still produce a file-level conflict, because Git's line-based diff has no idea that one change was ten thousand lines away from the other inside the same monolithic document.

coArchi avoids that problem by never committing the single file at all. It uses a format the project calls Grafico, which explodes the model into a real folder-and-file hierarchy: separate subfolders roughly by asset type — application, business, technology, diagrams, relations, and so on — with one small, individually named XML file per model object inside each. Because each file is small, human-readable, and scoped to one concept, two architects editing two different elements almost always end up touching two different files, which Git can merge automatically without any human intervention at all. It is not a clever hack layered on top of Git; it is the specific design decision that makes Git collaboration on an ArchiMate model realistic in the first place, rather than a source of constant, spurious conflicts.

model.archimate one large XML file everything, everywhere Grafico application/ business/ diagrams/ relations/ a1b2c3d4.xml e5f6a7b8.xml c9d0e1f2.xml a3b4c5d6.xml f7e8d9c0.xml small, one per asset
Grafico is the specific design choice that makes Git collaboration realistic for an ArchiMate model — small, scoped, readable files instead of one large opaque document.

The daily workflow: commit, then publish

Day to day, an architect works in Archi exactly as they always have — nothing about modelling itself changes. coArchi's own vocabulary keeps commit and share as two distinct, deliberate steps rather than one action, which matters for how the workflow actually feels:

1 · Model

Work as normal, save when you like

Nothing about the modelling experience changes. Saving locally does not touch the shared repository at all.

2 · Commit Changes

A local checkpoint, offline-capable

Records a snapshot of what changed, with a message, entirely on your own machine. No network needed, and nothing is shared with anyone yet.

3 · Refresh & Publish

Pull first, then share your commits

Refresh brings down anyone else's published changes; Publish pushes yours. This is the step where a genuine conflict, if there is one, surfaces.

That two-step shape — commit locally, then separately choose to publish — is deliberate and worth understanding on its own terms, not just as "Git with different button labels." It means an architect can checkpoint their own work-in-progress repeatedly through a session, entirely offline, without ever exposing half-finished thinking to the rest of the team, and only decide to publish once a piece of work is actually ready to share. That is a genuine, useful property, and it is one CelinQ's own local-first approach shares in spirit, even though the mechanism underneath is completely different — a companion service exchanging changes with a server rather than an explicit commit-and-publish action a person triggers.

What happens when two people change the same thing

Because of Grafico's file-per-asset split, most concurrent changes across a team never produce a conflict at all — two architects working on different elements are, from Git's point of view, editing different files, and Publish simply combines both sets of changes automatically. A genuine conflict only surfaces when two people change the same concept — the same element, the same relationship, the same diagram — before either one has published. When that happens, coArchi presents a conflict dialog inside Archi itself rather than dropping an architect into a raw text merge tool full of Git conflict markers, and the resolution happens in the context of the model, not a diff of two versions of an XML fragment. It is a real, usable answer to the conflict problem — but the choice it is asking a person to make is still, underneath, "which version of this file wins," not an automatic judgement about whether the two changes are actually compatible and could both be kept. Two architects who each add an unrelated property to the same element, in a way a human would obviously consider non-conflicting, can still be asked to resolve it as a conflict, because Git's merge machinery reasons about file regions, not ArchiMate semantics.

coArchi also keeps a full commit history — its own documentation calls this the model's "Time Machine" — so a team gets real, browsable versioning of who changed what and when, the same guarantee any Git-backed workflow gives you for source code. More recent versions add proper branch creation, deletion and merging directly from Archi's own UI, extending the same familiar Git concepts — a feature branch for a piece of exploratory modelling, merged back once it is settled — into architecture modelling rather than leaving branching as something only available to teams willing to drop into a terminal.

What a team actually signs up for

None of this is free, and it would be unfair to describe coArchi as a magic fix without naming the real cost. Someone has to stand up and maintain the remote Git repository — genuinely trivial if the team already runs GitHub or GitLab for everything else, a real piece of new infrastructure if it doesn't. Architects have to build the habit of committing and publishing at sensible points in a working session, a discipline software teams already have baked in but a modelling practice does not necessarily start with. And even with coArchi's own UI standing between an architect and raw Git commands, the underlying mental model is still fundamentally Git's — branches, commits, conflicts, a remote you have to stay in sync with — which one honest, hands-on account of using it describes as feeling "a little clunky if you're already familiar with git," a fair characterisation of a UI that has to represent genuinely complex operations without hiding what's actually happening underneath.

Where CelinQ differs, briefly. CelinQ takes the local-first idea somewhere different: instead of an explicit commit-and-publish action a person triggers, a companion plug-in exchanges changes with a shared server, and CelinQ Fusion reconciles concurrent edits at the level of what an element or relationship means, not by comparing file regions. There is no Git remote to run and no commit discipline to build — the trade-off is a second server instead of a Git repository you may already have. The full, dimension-by-dimension comparison is here, including when coArchi is genuinely the better fit.

Frequently asked questions

Do I need to know Git to use coArchi? Not to get started — the day-to-day actions are Commit and Publish, driven from Archi's own menus. Understanding what a commit, a branch and a merge conflict are underneath will make troubleshooting far less confusing, but it is not a prerequisite for normal use.

Do I need to install Git separately? No — coArchi handles Git operations from inside Archi's own interface; you do not need a separate command-line Git client to use it day to day.

Does coArchi support branching? Yes, current versions support creating, deleting and merging branches directly from Archi's UI, extending the same concept teams already use for source code to architecture models.

Is coArchi free? Yes — it is a free, open-source plugin maintained alongside Archi itself, not a paid add-on.

Related reading

Practical

How to Resolve coArchi Conflicts

A worked example of the conflict dialog described above, and how to reason about which version to keep.

Context

Archi Was Built for One Editor at a Time

Why Archi needed a plugin like coArchi at all, and what the alternatives look like.

Comparison

CelinQ vs coArchi

A dimension-by-dimension architecture comparison, including when coArchi is the better choice.