by Sébastien Julliand

Today, I want to share some of my hidden gems in VS Code for IBM i. These aren’t exactly “secret” features, but rather gems: useful, practical, and sometimes not well documented, but they’ve saved me many times.

I’m Sébastien Julliand, Tech Lead & IBM i Advocate at ARCAD Software, and also one of the top contributors to the Code for IBM i project (second most active, actually, which earned me a nice “champion” badge – thanks IBM 😉).

1. VS Code Settings Sync

I absolutely love this feature. With a GitHub or Microsoft account, all my settings are automatically synced to the cloud.

  • I can retrieve everything if I change my machine.
  • I even get a history of changes: if I mess something up, I can roll back.
  • Plus, it serves as a backup solution.

Good to know: Of course, passwords stay local (but honestly, who doesn’t use KeePass, right?). 😉

2. Profiles: Switch Contexts with One Click

With profiles, I can easily switch between my dev, test, and production environments without creating new connections.

  • Filters (objects, IFS), current library, working directory—everything stays intact.
  • Even my custom variables are saved.

No need to reconnect every time. It’s a huge time saver.

Les profils : changer de contexte en un clic

3. Custom Variables

These little guys are super powerful.
They’re saved in profiles and allow actions to behave differently depending on the context.

For example, I use a file_attr variable in an action for “Print File Definition”, and its value changes depending on whether I’m in dev or test. This allows me to use a single script with different behaviors.

CS Code - Variables personnalisées

4. Custom Actions

This is probably one of the most used features for me.

With actions, I can run:

  • 5250 commands, Shell, QShell,
  • on members, objects, stream files, or even local files.

I can also:

  • refresh the explorer automatically after execution,
  • write the output to an IFS file (super useful for keeping a history).

Quick tip: Ctrl + E to execute an action right away.

VS Code - Actions personnalisées

5. Action Prompts

Instead of typing everything manually, I can use smart prompts:

  • Put a ? in front of the command for a simple prompt.
  • But I prefer custom prompts: dropdowns, text fields, predefined options.

Example: for a DSPPGM, I get a dropdown with possible parameters (*PRINT, *OUTFILE). Much nicer than a plain text prompt.

VS Code - Prompts d’action
VS Code - Prompts d’action

Maintain RPGLE, CL, COBOL, C/CPP on IBM i directly from Visual Studio Code.

6. Run Actions on Multiple Objects

Previously, I had to run an action on one object at a time. Now, I can select multiple objects (Ctrl+click or Shift+click) and execute the action with one prompt.

I tested it live: on 3 programs, 2 failed, but the results were still neatly accessible. Very useful for batch processing.

VS Code - Lancer une action sur plusieurs objets

7. Protected Mode (Avoiding Mistakes in Prod)

Who hasn’t accidentally broken production? 😅

With Protected Mode, I can lock down a whole connection, a directory (QSYS, IFS), or just a filter.

This way, nothing can be deleted or modified by mistake. A nice 🔒 icon shows up to remind me that things are locked down. Trust me, it saves lives (or at least jobs).

VS Code - Mode protégé (Protected Mode)
VS Code - Mode protégé (Protected Mode)
vs-code-mode-protege-protected-mode-3
VS Code - Mode protégé (Protected Mode)

8. Global System Settings (/etc/vscode/settings.json)

Here’s a cool new feature: you can define global settings that apply to everyone on a partition.

Example: force saving source dates to prevent losing them.

Once set, these settings can’t be disabled by users, and content assist in VS Code helps you view available parameters.

VS Code - Paramètres système globaux

9. Upload / Download Files

Simple and effective:

  • Download a member or an entire source file.
  • Download IFS files or directories.
  • Upload a local file to a member or the IFS.

In a demo, I even uploaded a “Jurassic Park” file just for fun. And yes, it works 😁

VS Code - Upload / Download de fichiers

10. Drag & Drop Between Local and IFS

Even more intuitive: I can drag a file from my local explorer (Windows/Mac) and drop it directly into the IFS Explorer in VS Code.

This works in this direction, but not the other way around (limitation of the VS Code API).

VS Code - Drag & drop entre local et IFS

Unlock the power of DevOps on IBM i with the ARCAD-Elias extension for VS Code.

11. Standard VS Code Compare

VS Code has built-in compare functionality:

  • Compare two open files (Ctrl+click → Compare selected),
  • Compare the active version with the saved version,
  • Compare with clipboard content.

Personally, I use this a lot to double-check my changes before saving a member.

VS Code - Comparaison standard
VS Code - Comparaison Standard

12. IBM i-Specific Compare

If you want to go further, the IBM i extension allows you to compare:

  • two members,
  • a member and a stream file,
  • a local file with an IBM i file,
  • or even an object with the active editor.

This is way more than what the standard VS Code compare can do.

VS Code - Comparaison avec Code for IBM i

13. DB2 Query History

How many times have you written a great query… and forgot to save it?

No worries—VS Code keeps a history of DB2 queries per partition (LPAR), sorted by week, month, or older.

Just reopen your query and run it again. Huge time saver.

VS Code - Historique des requêtes DB2

14. SQL Processors

By prefixing your SQL query, you can change how it behaves:

  • json → output in JSON,
  • csv → output in CSV,
  • update → make the result editable directly,
  • cl → run a CL command,
  • rpg → generate an RPG data structure for SELECT results.

I showed this live: transforming a query into JSON or CSV is instant.

15. DB2 Notebooks

This is one of my favorite features.

A .inb file can mix SQL, CL, Shell, and Markdown, and show the results in a table or as a graph (pie chart, bar chart).

You can even export it to HTML → perfect for quickly creating reports for your manager without complex BI tools.

Personally, I also use them to create interactive tutorials. It’s educational and visual.

VS Code - Notebooks DB2

Bonus: GitHub Gists & Sandbox

Get the Gist : I use the GistPad extension to store my snippets and DB2 queries on GitHub. Example: Scott Forstie shares a lot of useful DB2 queries as Gists, which are directly accessible from VS Code.

VS Code - GistPad

IBM i Sandbox : an online shared environment for testing Code for IBM i for free for one day. Perfect for experimenting without any risk.

VS Code - IBM i Sandbox

Conclusion

So there you have it, my 15 favorite features of VS Code for IBM i.

They might not all seem revolutionary, but trust me: they save a ton of time, make your work more secure, and make your workflow way smoother.

So go ahead—try them out, customize them, and most importantly… have fun with VS Code and IBM i!

Modernize your IBM i applications, from databases to source code.

Sébastien Julliand

Tech Lead & IBM i Advocate

Sébastien Julliand, Tech Lead and IBM i Advocate at ARCAD Software, has been working for over 10 years to bridge IBM i with open systems. An expert in multi-language development (RPGLE, Java, TypeScript), he is a functional and technical lead within the R&D department. Involved in the development of several ARCAD products, he is the product manager for ARCAD CodeChecker and the ARCAD extensions for VS Code, where he brings his DevOps expertise on a daily basis. A speaker at IBM i conferences and open-source contributor, particularly on Code for IBM i, he was recognized as an IBM Champion in 2024 and 2025.

Contact Us

REQUEST A DEMO

Let’s talk about your project!

Speak with an expert

Customized Demo

Contact our experts