Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>OpenIBMNew to Visual Studio Code? Get it now.
OpenIBM

OpenIBM

OpenIBM

| (1) | Free
Syntax highlighting, formatting, completions, and client code generation for .ibmi schema files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

OpenIBM

Syntax highlighting, formatting, IntelliSense, schema explorer, and client code generation for .ibmi schema files.


Features

Syntax Highlighting

Full grammar support for all .ibmi schema constructs — datasource, generator, program, serviceprogram, table, and procedure blocks.

IntelliSense & Completions

  • Block keyword snippets at the top level
  • Context-aware attribute completions inside each block (library, transport, system, function, resultSet, …)
  • All IBM i types with argument snippets: PackedDecimal(15, 0), Char(10), VarChar(255), etc.
  • Parameter direction directives: @in, @out, @inout
  • Table column directives: @id, @map("COLNAME")

Auto-formatting

Format your .ibmi file with Shift+Alt+F (or right-click → Format Document). Aligns columns and attributes for readability.

Schema Explorer (Sidebar)

Click the OpenIBM icon in the Activity Bar to open the Schema Explorer.

  • Lists all .ibmi files in your workspace
  • Expands each file into Programs, Service Programs, Tables, and Procedures
  • Click any declaration to jump directly to it in the editor
  • Refresh button (↺) to rescan the workspace
  • Auto-refreshes when .ibmi files are created, changed, or deleted

Generate Client Code

Generate a fully-typed TypeScript client from your .ibmi schema:

  • Click the ▶ Generate Client Code lens at the top of any open .ibmi file, or
  • Click the ▶ play button next to a file node in the Schema Explorer

Output is written to the path set in your generator block, or ./generated/ by default.

generator client {
    output = "./src/generated/ibmi"
}

File Icon (Material Icon Theme)

If you use the Material Icon Theme, this extension automatically configures .ibmi files to use the database icon.

If the icon doesn't appear, add this to your settings.json manually:

"material-icon-theme.files.associations": {
    "*.ibmi": "database"
}

Example Schema

datasource ibmi {
    transport = env("IBMI_TRANSPORT")
    system    = env("IBMI_SYSTEM")
}

generator client {
    output = "./src/generated/ibmi"
}

table Customer @map("MYLIB.CUSTMST") {
    id       Int          @id  @map("CUSTID")
    name     Char(25)          @map("CUSTNAME")
    balance  PackedDecimal(11, 2) @map("BALANCE")
}

program GetCustomer @map("GETCUST") {
    library  = "MYLIB"
    custId   Int    @in
    custName Char(25) @out
}

procedure ListCustomers {
    library   = "MYLIB"
    resultSet = "Customer"
    state     Char(2) @in
}

Requirements

  • VS Code ^1.80.0
  • An IBM i system accessible via HTTP, SSH, or ODBC transport
  • @openibm/client in your project for runtime usage
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft