Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>IBM Project4iNew to Visual Studio Code? Get it now.
IBM Project4i

IBM Project4i

Giuseppe Di Bari

|
245 installs
| (2) | Free
Professional ALM & DevOps platform for IBM i (AS/400): organize source members into projects, lock, promote across environments, analyze dependencies and automate releases.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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.

Version Installs License IBM i Runs on VS Code & IBM BOB AI


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
  • Getting Started
  • AI Suite
  • Environments & Promotion
  • Deployment Packages
  • Team Collaboration & Governance
  • Source Inventory & Member Search
  • Dependency Graph & Impact Analysis 360
  • Daily Workflow
  • Project Lifecycle
  • Configuration
  • Variables
  • Commands Reference
  • Extension Settings
  • Data Model
  • Development
  • License & Acknowledgments

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

  1. Install the extension from the Marketplace (or side-load the .vsix).
  2. Connect to your IBM i system via Code for IBM i.
  3. 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.)
  4. Create a project — click + in the Projects view.
  5. Add a member — right-click a source member in the Object Browser → Add to Project.
  6. 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.

  1. Describe the change and pick the output language.
  2. 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.
  3. 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.
  4. 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.
  5. 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.


Environments & Promotion

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.

Promotion

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

Promotion & Packages

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.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft