IBM i Member Workspace
Bring IBM i source members into a local workspace, edit them offline, and synchronize changes safely using VS Code's built-in diff editor. Works with Code for IBM i.
Why?Editing source members directly through Code for IBM i saves straight to the IBM i on every keystroke-save. This extension lets you check out a local copy, work at your own pace, and merge changes back when ready — with full diff support and source date preservation. This allows AI tools to work with your source files locally. Before the first checkout in each VS Code workspace, choose a visible local folder for member files. The extension never silently stores checked-out members inside its installation or private storage. First-Time Setup
The folder selection and checkout index are private to the current VS Code workspace and are not written to FeaturesCheck Out MembersRight-click a member in the Code for IBM i Object Browser and choose Check Out Member. The source downloads to a local file (named after the member, e.g. Select multiple members (Ctrl/Shift-click) before checking out, and they're all downloaded together — if any are already checked out, you're asked once whether to re-download or skip them. Check Out All MembersRight-click a source file (one level above members) and choose Check Out All Members to pull down every member it contains in one go. Since this can mean a lot of members, a confirmation dialog warns that it may take a while before starting. Protected Filter MembersCheckout is hidden by default for members in a protected (read-only) filter. Enable Merge Back to IBM iRight-click a checkout and choose Merge Back to IBM i to open a diff view — your local changes on the left, the live remote member on the right. Use VS Code's merge arrows to selectively apply changes, then save the remote side; Code for IBM i handles the upload and preserves source dates. Upload to IBM iFor a quick full replace, use Upload to IBM i. This overwrites the remote member with your local copy. A warning confirms that source dates will not be preserved. Before uploading, the extension checks whether the member has changed on the IBM i since you checked it out. If it has, you're asked to Overwrite Anyway or Show Diff instead of silently losing the remote changes. In a multi-member upload, members changed on the IBM i are skipped and listed in the IBM i Member Workspace output panel. Refresh Remote StatusCompares your local file, the live remote content, and the remote content as it was at checkout time (not just a stale comparison) to classify each checkout:
Refresh per member (inline icon or context menu, with a prompt to Re-checkout or review the diff when the remote has changed), per source file group, or for every checkout at once from the panel toolbar. Bulk refreshes show per-member progress and can be cancelled. Compare WithRight-click a checkout for comparison tools: Select for Compare (mark one checkout, then Compare with Selected on another), Compare with Active File, Compare with Local File, Compare with IFS File, or Compare with Member (any source member by path). Other Actions
Multi-SelectThe Checked Out Members panel supports selecting multiple checkouts at once. Open Local/Remote File, Run Action, Upload to IBM i, Refresh Remote Status, and Discard Checkout all work on a multi-selection, each confirming with a message naming how many members the action will affect before proceeding. Actions that only make sense for one item at a time (Merge Back, Compare With, Copy Member Path, Reveal in File Explorer) are single-selection only. Settings
Local File Structure
Organizing by system, library, and source file preserves the original filename for compilation and prevents collisions across different IBM i systems. Requirements
Building from SourcePrerequisites
Build
Other useful scripts:
Run Without Installing (Development)
Package and Install
To update, package and install the new Moving from Another Checkout ExtensionIBM i Member Workspace has its own command IDs, settings, views, and extension storage. It can be enabled alongside the original extension, but it does not import or share checkout metadata.
Do not configure two checkout extensions to use the same local folder. Existing files are not tracked until they are checked out with IBM i Member Workspace, and each VS Code workspace maintains its own checkout index. ReleasesThe public source for each release is tagged in this repository. Release VSIX files are also attached to GitHub Releases. The Marketplace extension ID is SupportReport problems and request features through the IBM i Member Workspace issue tracker. This project is maintained and supported independently. License and AttributionGPL-3.0. This project is derived from GPL-licensed work; see NOTICE for its origin and maintenance information. |