IBM Project4i
The AI-Powered ALM & DevOps Platform for IBM i
Plan, build, analyze, promote, release, and govern IBM i applications end-to-end — inside VS Code and IBM BOB, on top of Code for IBM i.
Why IBM Project4i?
IBM i software delivery has long been tied to physical libraries and hand-rolled scripts. IBM Project4i turns that into a complete, governed ALM & DevOps platform — covering the whole application lifecycle without leaving your editor.
Plan work into logical projects that span any library, develop with locking and conflict control, analyze the blast radius of a change with a dependency graph and AI, promote through a real multi-tier pipeline, release with governed deployment packages and maker-checker approval, and trace everything with a synced audit trail and Kanban board — while an autonomous AI suite documents and drives it all.
And it runs where you do: natively on VS Code and on IBM BOB (IBM's VS Code–based IDE) — including forks that ship without a language-model provider — thanks to a pluggable AI backend.
A complete ALM lifecycle
- 🗂️ Plan — Group sources from any library into logical projects, with roles, permissions, and a full lifecycle (create, copy, archive, chronicle).
- 🔬 Analyze — Scan a cross-object Dependency Graph and run AI change-impact analysis to see what breaks before you release.
- 🚦 Promote — Model a real
DEV → INT → QA → UAT → STG → PROD → DR pipeline with per-tier libraries and data-safe promotion.
- 📦 Release — Bundle members into governed Deployment Packages with build-order deploy, maker-checker approval, and one-click rollback.
- 🏢 Govern — Shared projects on the IFS, organization roles (admin / publisher / approver / user), granular permissions, pessimistic locking, and conflict detection.
- 📊 Trace — A Kanban lifecycle board and a complete, team-synced activity log.
- 🧠 Automate with AI — Generate documentation, drive deployments with an autonomous zero-hallucination build agent, and chat with
@project4i — on VS Code models or your own external LLM.
A native IBM i ALM & DevOps platform — for teams who ship from VS Code and IBM BOB.
📖 Documentation
For an in-depth, topic-by-topic manual covering both the functional and technical
side of each feature, see DOCUMENTATION.md. It is maintained alongside
the code (the code is the source of truth) and currently includes a pilot set of topics
(Promote, remote multi-server Promote, server password encryption), with more topics added
over time.
Table of Contents
Features at a Glance
| Area |
Capability |
| 🧠 AI Documentation |
Generate Word-compatible technical and functional documents from your source members, persisted on the IFS with in-editor preview and Open in Word. |
| 🔬 AI Change-Impact Analysis |
Describe an intended change; the AI reads the source members in a chosen perimeter, judges which are impacted (with confidence + reasoning), writes a DevOps impact document, and proposes members to add. |
| 🤖 AI Build Agent |
Autonomous agent that executes natural-language rules or Markdown Runbooks via a strict zero-hallucination tool-calling protocol (run CL commands, copy members, deploy). |
| 💬 Chat Participant |
@project4i in VS Code Chat — create projects, add members, promote, and more using natural language. |
| 🚦 Multi-Tier Environments |
N-tier pipeline (DEV → INT → QA → UAT → STG → PROD → DR) with per-tier source / object / data / config / backup / journal libraries. |
| ⬆️ Promotion |
Per-member and batch promote with customizable CL templates, data-safe recompile (CRTPF→CHGPF), and member-level maker-checker approval + rollback. |
| 📦 Deployment Packages |
Bundle members into a named release, deploy in build-dependency order, gate with approval, and roll back from automatic backups. |
| 🏢 Organization Governance |
Shared org config on the IFS with roles (admin / publisher / approver / user); environments, workflow commands, and source inventory are published centrally. |
| ☁️ Shared Projects |
Project metadata + activity log on the IFS for real-time team collaboration, with granular per-contributor permissions. |
| 📚 Source Inventory |
Org-wide catalog of source containers (library/file), exposed to CL templates and AI via the &SOURCE_INVENTORY variable. |
| �️ Dependency Graph & Impact Analysis 360 |
Scan cross-object dependencies (programs, files, service programs, modules, logical→physical, data areas/queues, message files, triggers, binding directories) into an IFS-persisted graph, then answer "who uses me" and "what do I depend on" — first-level or transitive — in an interactive navigator with a Diagram view. |
| 🔎 Member Search |
Metadata and content search across libraries (name / type / description / changed-after / source text) from a sidebar view or a full panel, with reusable Source Collections. |
| 🧠 Pluggable AI Backend |
Run the AI suite on VS Code models (GitHub Copilot / vscode.lm) or an External "Bring Your Own LLM" OpenAI-compatible endpoint (OpenAI, Azure OpenAI, Ollama, watsonx via gateway) — so AI works even on VS Code forks without a language-model provider. |
| 🔒 Member Locking |
Pessimistic locks track the IBM i user editing each member; owners can force-unlock. |
| ⚠️ Conflict Detection |
Members present in more than one project are flagged and blocked from promotion until resolved. |
| ❌ Orphan Health Check |
Automatic verification that referenced members still exist on IBM i; orphans are flagged and bulk-removable. |
| 📊 Kanban Board |
Dev → Promoted → In Test lifecycle board with automatic state transitions, synced to the shared IFS file. |
| 🧾 Activity Log |
Filterable, team-synced audit trail of every action (create, promote, package, approval, rename, error). |
| 🧩 Hybrid Content |
Mix native source members (QSYS) and IFS stream files in the same project. |
| 🗂️ Project Lifecycle |
Create, rename, copy-as-new, archive (read-only), remove from workspace, re-open, and a per-project chronicle. |
| ⚙️ Two-Column Settings |
VS Code Settings–style panels for global defaults and per-project properties, with clickable variable references. |
| 🔌 Multi-Connection |
Per-server project storage with automatic migration and a unified cross-connection browser. |
| 🪄 Setup Wizard |
Guided first-run configuration that bootstraps the organization, environments, and pipeline on a fresh system. |
| 🎨 Theming |
Full Dark / Light theme support with custom SVG icons and color-coded tree nodes. |
Getting Started
Prerequisites
| Requirement |
Version |
| VS Code or IBM BOB |
VS Code ≥ 1.85.0 (or a compatible VS Code–based IDE such as IBM BOB) |
| Code for IBM i |
Latest |
| Active IBM i connection |
— |
| AI features |
A VS Code Language Model provider (e.g. GitHub Copilot) or an External OpenAI-compatible endpoint (see AI Suite) |
Quick Start
- Install the extension from the Marketplace (or side-load the
.vsix).
- Connect to your IBM i system via Code for IBM i.
- First run? When you configure a new ALM instance the Setup Wizard opens automatically to bootstrap your IFS root, environments, and promotion pipeline. (Skip if your organization is already configured — you'll just join it.)
- Create a project — click
+ in the Projects view.
- Add a member — right-click a source member in the Object Browser → Add to Project.
- Promote — configure environments/templates in Properties (⚙️), then right-click a member → Promote.
AI Suite
All AI features run through a pluggable AI backend with two modes, selectable in Control Panel → AI:
- VS Code models (default) — GitHub Copilot or any
vscode.lm Language Model provider. On standard VS Code + Copilot nothing changes: this is the out-of-the-box behavior.
- External model — "Bring Your Own LLM" — any OpenAI-compatible endpoint (OpenAI, Azure OpenAI, Ollama, watsonx via a gateway). Configure the Base URL, Model name, and an API key (stored encrypted in VS Code SecretStorage — never in project files, on the IFS, or in logs), with a Test connection button and an optional "use the external model only when no VS Code models are available" fallback.
The external backend lets the AI suite work even on VS Code forks that ship without a vscode.lm provider (e.g. IBM BOB). You can also pin a dedicated documentation model in Control Panel.
📚 AI Documentation
Turn source code into living documentation, stored as Word-compatible .doc files in the project's IFS .docs/ folder.
| Command |
Output |
| Generate Documentation (AI) |
A technical analysis doc — per-member purpose, I/O, key logic, files/tables, and dependencies. |
| Generate Functional Overview (AI) |
A business-oriented doc synthesized from the technical analysis — capabilities, processes, data, and integrations. |
| Update Documentation (AI) |
Incrementally re-analyzes only changed members. |
| Generate Documentation (AI) (on a member) |
Merges a single member into the project document. |
Documents open inside VS Code on a paper-style preview, with one-click Open in Word. Generation runs in a live progress panel you can cancel.
Requires a shared / IFS-backed project. Launch from a project, a shared project, or the 📚 Documentation folder.
🔬 AI Change-Impact Analysis
Assess the blast radius of a change before you make it. Launch Analyze Change Impact (AI) from a project's context menu or its Documentation folder.
- Describe the change and pick the output language.
- Scope the perimeter — select source containers from the Source Inventory and optionally filter members per container (e.g.
ORD*, TIT*). Preview counts shows how many members are in scope.
- Analyze — a cost-controlled two-phase pass: the AI extracts keywords for a fast pre-scan, then deeply analyzes each candidate's source and returns a verdict (impacted? confidence, reason, change areas, risks). Progress is shown inside the panel and is cancellable.
- Impact document — a standardized DevOps assessment (Change Summary, Functional Impact, Affected Areas, Impacted Objects table, Required Changes, Dependencies, Risks, Test Plan, Rollback Plan) is saved to the IFS and can be previewed or opened in Word.
- Add to project — review the proposed impacted members and add the selected ones; they are checked out via the normal physical-copy path with conflict detection.
🤖 AI Build Agent
An autonomous agent that drives promotion via a strict zero-hallucination, tool-calling protocol — it emits tool calls (never free text), runs each real IBM i command, captures results, and reports every step.
| Promote Mode |
Description |
| Template |
Classic CL command template with variable substitution. |
| AI Generation |
The model generates promote commands from freeform rules. |
| AI Runbook |
The model follows a structured Markdown runbook step-by-step. |
# Promote Runbook
1. Copy source from &MBR_SRC_LIB/&MBR_SRC_FILE(&OBJ_NAME) to &DEV_SRC_LIB/QRPGLESRC
2. Compile with CRTBNDRPG PGM(&DEV_OBJ_LIB/&OBJ_NAME) SRCFILE(&DEV_SRC_LIB/QRPGLESRC)
3. If compile succeeds, copy to &PROD_SRC_LIB/QRPGLESRC
Available tools: runIBMCommand (execute any CL command) and copySourceMember (copy a source member between libraries/files).
💬 Chat Participant
Type @project4i in the VS Code Chat view to create projects, add members, promote, and more using natural language. The participant understands your environments, custom variables, and source inventory.
Multi-Tier Environments
Each project defines an N-tier pipeline. The built-in seed is a 7-tier chain you can rename, reorder, add to, or trim:
DEV → INT → QA → UAT → STG → PROD → DR
Every tier maps to a set of libraries — source and object (required), plus optional data, config, backup, journal, and an IFS path. Tier libraries are exposed to commands as generic, type-based variables (e.g. &DEV_SRC_LIB, &UAT_OBJ_LIB, &PROD_DTA_LIB) so one template works across projects.
| Action |
Description |
| Promote Member |
Deploy a single member with a customizable CL template. Blocked for conflicted members. |
| Promote All |
Batch deploy sequentially with Run / Skip / Run All / Cancel All; conflicts auto-skipped. |
| Promote IFS Stream File |
Dedicated template with IFS-specific variables. |
| Rollback Promote |
Restore the pre-promote backup of a member. |
Data-safe recompile (on by default): when promoting to an object that already exists, CRTPF becomes CHGPF (data migrated by field name), existing logical files are dropped/recreated, and a CREATE TABLE for an existing SQL table is skipped — so production data is preserved. Optionally grant *PUBLIC *ALL on every recompiled object.
Member-Level Approval
Promotion can require maker-checker sign-off: Request Approval → Approve / Reject (a different user). Deploy stays blocked until approved.
CL Interactive Prompting
Prefix any command template with ? to open the CL Prompter — a visual form rendering each parameter as a labelled field before execution.
?CRTBNDRPG PGM(&DEV_OBJ_LIB/&OBJ_NAME) SRCFILE(&DEV_SRC_LIB/&MBR_SRC_FILE) SRCMBR(&OBJ_NAME)
Custom Project Actions
Define reusable CL templates attached to a project and run them on any member via Run Project Action…. Seed default actions in Control Panel so every new project inherits your team's standard commands.
Deployment Packages
Bundle a set of members into a single, named release and deploy them together as one governed operation. Each project has an always-visible 📦 Deployment Packages folder; packages and deploy history are stored alongside the project (on the IFS for shared projects).
- Create — name, optional release notes, optional shared Ticket ID; multi-select members shown in build-dependency order.
- Deploy — target environments are filtered to those valid for all members; members promote in build tiers (PF → LF → DSPF/PRTF/CMD → programs → CL → service programs) and the build stops on the first failure.
- Approval — optional maker-checker gate; the requester cannot approve their own package.
- Rollback — restore every member's pre-deploy backup in reverse build order.
All package actions are recorded in the Activity Log with dedicated badges.
Team Collaboration & Governance
Shared (Team) Projects
Shared projects store their metadata and audit trail as JSON on the IBM i IFS, enabling real-time collaboration. Set the IFS root once (via the Setup Wizard or Control Panel), then create or join shared projects from the Browse Projects… panel. Sync at any time with Sync Shared Project.
| Role |
Can edit |
Manage contributors |
Delete / archive |
| Owner |
✅ |
✅ |
✅ |
| Contributor |
✅ (per-permission) |
❌ (can leave) |
❌ (unless permitted) |
| Viewer |
❌ |
❌ |
❌ |
Per-contributor permissions (owner always has all): addMember, createMember, promoteMember, runAction, addDocumentation, syncProject, removeFromWorkspace, openProperties, renameProject, deleteProject, removeMember, removeStreamFile, moveMember, editDocumentation, canReopen, canResolveConflicts.
Organization Governance
For multi-tenant / enterprise setups, an organization lives under a fixed IFS root (/home/project4i or /tmp/project4i) and centralizes shared configuration:
- Roles:
admin (manage org & users), publisher (publish enterprise config), approver (sign off promotions), user (consume config).
- Centrally published config: default environments, workflow commands, custom variables, and the source inventory — pulled automatically on connect and editable only by admins/publishers.
- First-run bootstrap: the Setup Wizard initializes the root, registers the first admin, and seeds the pipeline.
Project Browser
A unified webview lists every project — local, shared (IFS), and archived/history — across all connections, with type/name filters and one-click actions (Load to Workspace, Re-open, Copy as New, View Properties).
Import / Export
Export or import full configuration snapshots (projects + global settings) as portable JSON, ideal for versioning in Git or sharing across systems.
Source Inventory & Member Search
Source Inventory
An org-wide catalog of where source lives — Library/File "source containers" with editable per-library and per-file descriptions. Admins/publishers curate it in Control Panel; it is published to the IFS and shared with the team. The whole catalog is exposed to CL templates and AI through a single generic variable, &SOURCE_INVENTORY, and powers the perimeter picker in Change-Impact Analysis.
Member Search
Find members across libraries from the Member Search sidebar view or a full-screen panel, with a native progress indicator while the search runs:
- Metadata search — by name, type, description, and changed-after date (with wildcards).
- Content search — Search source content scans inside the source members for a text/pattern.
- Source Collections — save a search as a reusable, named collection and re-run it later (managed from the Source Collections panel).
Results integrate with project actions so you can jump straight to adding or opening a member — including Add to Project with a shared checkout straight from the search results.
Dependency Graph & Impact Analysis 360
Understand the blast radius of a change before you release it. IBM Project4i scans the relationships between your IBM i objects and turns them into an interactive, navigable graph — ideal for cutting regressions and onboarding onto legacy codebases.
Scan
A scan reads object dependencies across your inventory libraries — using the QSYS2 catalog together with DSPPGMREF and DSPDBR — and captures relationships between programs, files, service programs, modules, logical→physical files, data areas, data queues, message files, triggers, and binding directory entries (including SQL user-defined functions). The result is persisted on the IFS as a graph sharded per library, so it loads fast and stays up to date.
Two scan modes are available from the launch panel:
- Foreground (default) — the scan runs inside the extension with a live progress monitor.
- Background job (
SBMJOB) — the heavy collection runs as a server-side batch job while the extension polls its status; you can detach and re-attach without killing the job. All SBMJOB parameters (job queue, JOBD, priority, output queue, logging…) are configurable, and safety limits (max shard size, max objects, min free disk) can be tuned.
Impact Analysis 360
Open the Dependency Graph navigator to answer two mirror-image questions about any object:
- Used by (where-used / upstream) — who depends on me.
- Uses (downstream) — what I depend on.
Answers can be first-level or transitive (Indirect, multi-level with a configurable depth). The navigator puts an Object Finder at the top (search by name, library, type), a direction switch between Used by and Uses, horizontal tabs grouping each relationship type, and click-to-drill-down rows with a breadcrumb trail. A Diagram view renders the same sub-graph offline (node graph + entity-relationship, via Mermaid), and Open source opens the referenced member read-only.
For a *FILE target, impact automatically propagates through logical files to the programs that use them (rows reached only via a logical are flagged via logical file), so a physical-file change surfaces every affected program.
Entry points
| Action |
Description |
| Scan Dependency Graph |
Launch a foreground or background scan over the inventory libraries. |
| Open Dependency Graph |
Open the navigator with the Object Finder — pick any object to explore. |
| Impact Analysis (from member) |
Right-click a source member in the tree to jump straight to its object in the graph. |
The graph is loaded from the IFS and cached in memory; a Refresh button re-reads it, and a completed scan invalidates the cache automatically.
Daily Workflow
Members & Stream Files
- Add from the Object Browser (physical checkout copy via
CPYSRCF or your custom command) or reference IFS stream files from the IFS Browser.
- Create, Rename, Copy, Move (atomic, with pre-flight validation), Browse (read-only), and Compare with Origin.
- Remove logically, with optional physical delete (
RMVM) or a custom release command.
- Members are grouped by source type by default for a clearer overview.
Member Locking
A pessimistic lock tracks the IBM i user editing each member (checkedOutBy), shown with a 🔒 icon and the owner's name. Release your own lock with Release Lock; project owners can Force Unlock a lock held by someone else.
Conflict Detection
Adding a member that already exists in another project flags it In Conflict (⚠️) — a soft lock that blocks promotion but not adding. Clear it with Resolve Conflict (canResolveConflicts permission). Detection also runs when re-opening or copying projects.
Orphaned Members
An automatic health check (on connect, sync, and refresh) verifies that referenced members still exist on IBM i. Orphans are flagged with a ❌ icon and can be removed individually or via Remove All Orphaned Members.
Kanban Board & Activity Log
- Developer Kanban Board —
Dev → Promoted → In Test columns (swimlanes per project) with automatic state transitions on promote, one-click Send to Test, and Pass / Fail / ◀ Dev controls. All changes sync to the shared IFS file.
- Activity Log — a filterable audit trail (time, user, action badge, object,
source → target, status, ticket) covering members, promotes, packages, and approvals. Shared projects store it on the IFS for the whole team.
Documentation Hub
Each project has a virtual 📚 Documentation folder. Attach external URLs (open in the browser) and local files (PDF, Word, Excel — open with the OS default app), alongside the AI-generated documents.
Project Lifecycle
| Action |
Description |
| Create |
Name, optional description, and environments. |
| Rename |
Change the display name. |
| Copy as New |
Duplicate members, config, actions, permissions, docs, and stream files. |
| Archive |
Lock read-only with a reason (Deployed / Obsolete); snapshots in-progress edits. |
| Remove from Workspace |
Hide from your view without deleting shared data. |
| Delete |
Permanently remove the project and its metadata. |
| Re-open / Copy Archived |
Restore from the Project Browser with selective member checkout. |
Every lifecycle event (created, archived, re-opened, copied, removed) is recorded in the project's Chronicle with user and timestamp.
Configuration
Setup Wizard
On a fresh system, the Setup Wizard guides you through five steps — welcome/root, environments, their libraries & jobs, the promotion pipeline (with optional approval), and a review — then bootstraps the organization and opens the Control Panel. It opens automatically the first time you configure a new ALM instance, and from the Control Panel → Initialize action. A Skip — basic install option performs a quick default install instead.
Control Panel
A two-column panel (left sidebar navigation) for global defaults seeded into every new project: developer info, ticket/reason, environments, workflow commands (promote / checkout / release / IFS promote), custom actions, custom variables, source inventory, organization roles, and a clickable Variables Reference. Admin/publisher-only sections are hidden for regular users.
Project Properties
A per-project two-column panel: general info, environments table, promote config, custom actions, project-level custom variables, permissions (shared projects), and a clickable Variables Reference. A Load Defaults button fills empty fields from the global defaults.
Variables
CL templates and AI instructions support placeholder variables. Both v2 and legacy (v1) names are accepted; in the webview panels every Variables Reference is interactive — click a variable to insert it at the cursor.
Standard Variables
| Variable (v2) |
Legacy (v1) |
Description |
&OBJ_NAME |
&OBJECT_NAME |
Member / object name |
&OBJ_TYPE |
&MEMBER_TYPE, &TYPE |
Member extension / type |
&MBR_SRC_LIB |
&MEMBER_LIB |
Original member library |
&MBR_SRC_FILE |
&MEMBER_FILE |
Source physical file |
&ORG_SRC_LIB |
&SRC_LIB |
Origin library (checkout) |
&ORG_SRC_FILE |
&SRC_FILE |
Origin source file (checkout) |
&TICKET_ID |
&TICKET_REASON |
Ticket or change reason |
&USER_ID |
&DEVELOPER_USER |
IBM i developer user |
&USER_EMAIL |
&DEVELOPER_MAIL |
Developer email |
Environment Variables
Generated per environment type, so one template works across projects. For each tier: &<TYPE>_SRC_LIB, &<TYPE>_OBJ_LIB, and (when set) &<TYPE>_DTA_LIB, &<TYPE>_CFG_LIB, &<TYPE>_BKP_LIB, &<TYPE>_JRN_LIB, &<TYPE>_IFS_PATH — e.g. &DEV_SRC_LIB, &PROD_OBJ_LIB, &UAT_DTA_LIB. The promote target also exposes &TGT_ENV_ID, &TGT_SRC_LIB, &TGT_OBJ_LIB, etc.
IFS Stream File Variables
| Variable (v2) |
Legacy (v1) |
Description |
&IFS_FULL_PATH |
&IFS_PATH |
Full absolute IFS path |
&IFS_FILE_NAME |
&FILE_NAME, &OBJECT_NAME |
Basename without extension |
&IFS_FILE_EXT |
&FILE_EXT, &MEMBER_TYPE |
Extension without dot |
Special & Custom Variables
&SOURCE_INVENTORY — expands to all declared source containers (LIB/FILE, …) from the Source Inventory.
- Custom variables — user-defined
&VARIABLE placeholders with Global → Project inheritance (a project-level variable overrides the global one of the same name), available in all CL templates, AI instructions, and custom actions.
Commands Reference
All commands are under the IBM Project4i category in the Command Palette.
Projects & Lifecycle
| Command |
Description |
createProject / renameProject / deleteProject |
Create, rename, delete a project |
archiveProject / removeProject |
Archive (read-only) or remove from workspace |
copyProjectAsNew |
Duplicate a project with all config |
openProperties / refreshProjects |
Properties panel / refresh tree |
openSharedProject / syncSharedProject |
Browse-and-join / sync shared projects |
Members
| Command |
Description |
addMemberToProject / removeMemberFromProject |
Add / remove a member |
createMember / renameMember / copyMemberInProject |
Create, rename, copy a member |
openMember / browse / compareWithOrigin |
Edit, read-only browse, diff vs origin |
moveMember / memberProperties |
Move to another project / view properties |
addStreamFileToProject / removeStreamFileFromProject / openStreamFile |
IFS stream files |
| Command |
Description |
promoteMember / promoteProject / rollbackPromote |
Promote one / all members, rollback |
requestApproval / approveMember / rejectMember |
Member-level maker-checker |
createDeploymentPackage / deployPackage / deleteDeploymentPackage |
Manage packages |
requestPackageApproval / approvePackage / rejectPackage / rollbackPackage |
Package governance |
runAction / runProjectAction |
Code for IBM i action / custom CL action |
AI
| Command |
Description |
generateProjectDoc / updateProjectDoc |
Generate / update technical documentation |
generateFunctionalDoc / generateMemberDoc |
Functional overview / single-member doc |
analyzeChangeImpact |
AI change-impact analysis |
Discovery, Config & Governance
| Command |
Description |
focusMemberSearch / openMemberSearchPanel / openSourceCollectionsPanel |
Search members, source collections |
scanDependencyGraph / resumeDependencyScan |
Scan the object dependency graph / re-attach a background scan |
impactAnalysis / showImpactedPrograms / impactAnalysisFromMember |
Open the Dependency Graph navigator (Impact Analysis 360) |
manageDefaults |
Control Panel (global settings); the Setup Wizard opens from the new-instance flow and the Control Panel Initialize action |
pullGlobalEnvironments / pushGlobalEnvironments |
Sync org environment catalog with IFS |
applyDefaultsToAll / applyCustomVariablesToAll |
Push defaults / variables to all projects |
exportProjects / importProjects |
Configuration snapshots |
viewActivityLog / openKanbanBoard |
Audit trail / lifecycle board |
resolveConflict / forceUnlock / releaseMemberLock / removeOrphanedMembers |
Locks, conflicts, orphans |
addDoc / editDoc / removeDoc / openDoc |
Documentation hub |
openWalkthrough |
Getting Started guide |
Extension Settings
Settings live under project4i.* (File → Preferences → Settings → IBM Project4i).
| Setting |
Type |
Default |
Description |
project4i.promote.dataSafeRecompile |
boolean |
true |
Preserve data on promote (CRTPF→CHGPF, drop/recreate LFs, skip CREATE TABLE for existing tables). |
project4i.promote.grantPublicAll |
boolean |
true |
Run GRTOBJAUT … USER(*PUBLIC) AUT(*ALL) after each compile. |
project4i.view.groupMembersByType |
boolean |
true |
Group project members by source type in the tree. |
project4i.defaults.promoteCommand |
string |
"" |
Default promote CL template. |
project4i.defaults.promoteStreamFileCommand |
string |
"" |
Default IFS promote CL template. |
project4i.defaults.developerMail |
string |
"" |
Default developer email. |
project4i.defaultProjectActions |
array |
[] |
Default custom CL actions seeded into new projects. |
Most enterprise defaults (environments, workflow commands, ticket/reason, shared root, source inventory) are managed in the Control Panel panel and stored in GlobalState / on the IFS rather than in settings.json.
Data Model
Projects are stored in VS Code GlobalState (namespaced per IBM i connection) and, for shared projects, mirrored as JSON on the IFS.
Project — name, description, environments[] (N-tier pipeline), promoteConfig, members[], streamFiles[], docs[], customActions[], customVariables[], owner, contributors[], contributorPermissions, ifsPath, isArchived / archiveReason / archiveDate, chronicle[], version, created/modifiedDate.
Member — library, file, name, extension, asp?, addedDate, originalLocation (audit), checkedOutBy (lock), inConflict (blocks promote).
Environment — id, label, order, and libraries (srcLib, objLib, optional dtaLib / cfgLib / bkpLib / jrnLib / ifsPath).
Development
src/
├── extension.ts # Activation, org discovery, command registration
├── code4i.ts # Code for IBM i API integration
├── commands/commands.ts # Command handlers
├── services/ # AI, promotion, IFS, locking, org, search, docs…
│ ├── aiTaskExecutor.ts # Autonomous AI agent (Runbooks, tool-calling)
│ ├── aiDocumentationService.ts # AI technical/functional doc generation
│ ├── aiChangeImpactService.ts # AI change-impact model layer
│ ├── changeImpactService.ts # Change-impact orchestration
│ ├── documentationGenerationService.ts
│ ├── globalEnvironmentsService.ts # Org environment catalog + IFS sync
│ ├── organizationDiscoveryService.ts / organizationSecurityService.ts
│ ├── sourceInventoryService.ts / memberSearchService.ts
│ ├── promoteService.ts / batchPromoteService.ts / memberLockService.ts
│ ├── ifsService.ts / ifsDocsService.ts / sharedProjectService.ts
│ └── chatParticipant.ts
├── storage/projectStorage.ts # Data model, persistence, import/export
└── views/ # Webview panels & tree provider
npm install
npm run compile # one-shot build
npm run watch # watch mode
node __build-vsix.js # compile + package .vsix
Press F5 to launch the Extension Development Host. AI features require a Language Model provider (e.g. GitHub Copilot) in VS Code.
License & Acknowledgments
Licensed under the MIT license. Contributions are welcome — feel free to open a Pull Request.
This extension is designed to work alongside the excellent Code for IBM i extension by the Code for i team.
AI Disclosure
IBM Project4i uses Large Language Models in two ways: (1) a runtime AI suite (documentation, change-impact analysis, build agent, chat) via the VS Code Language Model API; and (2) AI-assisted development of the extension itself — with architecture, security model, and business logic reviewed and validated by the maintainer.