A project, at last
Group the sources of one application from any library and govern them as a single unit — instead of chasing them across a library list.
Git and modern ALM for IBM i, inside VS Code and IBM BOB.
An ALM and DevOps platform for IBM i that lives inside VS Code and IBM BOB. It rests on three ideas, and nothing you already have has to change to adopt them.
Group the sources of one application from any library and govern them as a single unit — instead of chasing them across a library list.
Branches, history, review and parallel work — the everyday tooling of every other platform, finally applied to RPG, CL and DDS. Coming soon
Promote and rollback across environments with pre-promote backups, authority
policies, data-safety gates on *FILE objects and a full audit trail.
From connection to a safe, governed release in five steps.
Use your existing Code for IBM i connection — Project4i never talks to the system directly, it builds on the connection you already trust.
Add members from any library into logical projects and share the project metadata with your team on the IFS.
In a Git project you edit locally, commit and branch, so two developers can work on the same application at the same time. In a traditional project you lock the member while you work — both paths continue into the same pipeline.
Ship from a commit, or from the library, through DEV → … → PROD with CL templates, automatic pre-promote backups, authority policies and approvals.
Explore the dependency graph to understand impact before you ship — and roll back cleanly from backups if you need to.
Git on IBM i
Your source lives in a Git repository hosted on your own IBM i. You edit locally, branch, merge and review like on any other platform — and the object that reaches production is still built by the Project4i promote engine, with every guarantee it gives you today.
Git becomes the way source is versioned and shared. Project4i remains the way software is put into production.
| Traditional | Git Mode | |
|---|---|---|
| Where the source of truth lives | IBM i library | Git repository |
| How you edit | Remote member | Local file on your PC |
| Working in parallel | Pessimistic lock — one developer at a time | Branch & merge — the whole team at once |
| Promote | From library to library | From a commit to a library |
The mode is chosen per project, at creation time. Existing projects stay traditional forever: there is no migration, no conversion, and nothing about the way you work today changes unless you ask for it.
At most it triggers a deploy to DEV. From there the existing engine takes over: pre-promote backup, authority policy, data-safety gate on data files, deploy register and rollback. Two reasons, neither of them cosmetic:
One folder per source physical file, so PGM1 in QRPGLESRC and
PGM1 in QCLLESRC stay two different files instead of colliding
into one that quietly disappears.
The member lock becomes an advisory warning rather than a block — Git exists precisely to remove that block — but the warning still matters: on RPG III, RPG IV and DDS an automatic merge can produce lines that are syntactically valid with the fields in the wrong columns. A program that compiles and is wrong, with nothing to flag it.
Lines longer than the member can hold are refused before the commit, with the line number — because IBM i truncates them without failing.
Optional personal development libraries give each developer their own compile target. Without them, two developers on two branches overwrite each other while believing they are isolated — and Git's parallelism evaporates.
A library name longer than the 10 characters IBM i allows is refused, never
shortened: shortening would collapse MARIOROSSI and
MARIOROSSETTI onto the same library, which is exactly the problem personal
libraries exist to solve.
Git on IBM i fails in ways that do not look like failures. Each of these was observed on a real IBM i — not assumed — and each one is handled:
master while everyone pushes main leaves the next clone
with exit code 0 and nothing inside.A practical, English user manual for every Project4i feature. Pick a topic from the index, or expand a card to read how each function works.
Project4i is a companion to the Code for IBM i extension: it never talks to your system directly, it builds on the connection you already trust. You need VS Code or IBM BOB, the Code for IBM i extension, and an active IBM i connection.
A Home / Welcome view guides your first steps and links to the main actions.
A project group is a logical bundle of source members drawn from any library — you are no longer tied to physical library boundaries. You can mix native QSYS source members and IFS stream files in the same project.
+ action).In a Git project the source of truth is a Git repository hosted on the IFS of your own IBM i: you edit files locally, commit, branch and merge, and the promote engine then builds what reaches each environment from a commit. Nothing leaves your system, and nothing changes for projects that stay traditional.
src/QRPGLESRC/PGM1.RPGLE), so members with the same name in different
source files never collide.*FILE
objects, deploy register and rollback all still apply.Git Mode is being finalised and is not yet enabled in the published release. Everything else on this page is available today.
Each project defines its own promotion pipeline — an ordered chain of
environments such as DEV → TEST → PROD (the built-in seed is a 7-tier
chain you can rename, reorder, add to, or trim).
&DEV_SRC_LIB, &PROD_OBJ_LIB), so one
template works across every project.Promote moves a member from one environment to the next, compiling it with the right command for its source type. Every promote takes an automatic pre-promote backup so you can roll back safely.
? to open a visual prompt for its parameters.CRTPF becomes CHGPF (data migrated by field name) and an
existing SQL table is preserved, so production data is never lost.A deployment package bundles several members into one named release that you deploy together as a single governed operation. Each project has an always-visible Deployment Packages folder.
Project4i can promote across multiple IBM i systems, not just the one you are connected to. A server catalog holds the connection details of your remote systems.
Understand the blast radius of a change before you release it. Project4i scans the relationships between your IBM i objects — programs, files, service programs, modules, logical→physical files, data areas, data queues, message files, triggers, and binding directories — into an interactive graph.
Inventories tell Project4i where your source and objects live, and the search tools help you find members fast across libraries.
Project4i includes an optional AI suite that helps you document and analyze your code. AI features are entirely optional and run through a pluggable backend.
Day-to-day helpers keep the whole team aligned and let you tailor Project4i to your standards.
Dev → Promoted → In Test lifecycle
board with automatic state transitions on promote.Everything lives inside VS Code and IBM BOB, styled with the Deep Space design.