Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Hopify SSIS ConverterNew to Visual Studio Code? Get it now.
Hopify SSIS Converter

Hopify SSIS Converter

Hopify

|
25 installs
| (0) | Free
Converts SSIS .dtsx packages to Apache Hop via Copilot Chat (@hopify convert)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Hopify — SSIS to Apache Hop Converter

Convert Microsoft SSIS .dtsx packages to Apache Hop pipelines and workflows directly inside VS Code, powered by GitHub Copilot.

Requirements

  • VS Code 1.95 or later
  • GitHub Copilot extension (signed in)

Installation

Install from the Marketplace or from a .vsix file via Extensions: Install from VSIX…

After installing or updating: run Developer: Reload Window (Ctrl+Shift+P → Reload Window) to activate the new version. This applies whether you install from the Marketplace or update by installing a new .vsix over an existing one.

Usage

Convert an SSIS package

  1. Open a .dtsx file in VS Code or have one ready to pick from disk.
  2. Open the Copilot Chat panel (Ctrl+Alt+I).
  3. Run:
@hopify /convert

Hopify will:

  1. Clean — strips designer noise and layout data to reduce token usage.
  2. Mask — replaces sensitive values (hostnames, passwords, file paths, emails) with {{TOKEN}} placeholders. Nothing sensitive is ever sent to the model.
  3. Route skills — loads only the conversion rules relevant to the components found in the package.
  4. Convert — sends the masked XML to Copilot and receives complete Apache Hop files.
  5. Restore — replaces every {{TOKEN}} placeholder back with the original value in the generated output.

Ask a question about Apache Hop

@hopify /ask How does the Merge Join transform work?
@hopify /ask What is the plugin ID for Table Output?

Answers using the bundled Hop skills as reference. To ask about a specific file, attach it to the message first via #file: and then ask your question.

Review and fix a generated file

Open a .hpl or .hwf file in the editor, then run:

@hopify /fix

Optionally add an instruction:

@hopify /fix Fix the missing hop between the sort and the output transform
@hopify /fix The connection name is wrong here, use {{HOSTNAME}}

Hopify reads the active file, loads all Hop skills as context, and applies the corrected XML directly into the editor. A ## Summary of every change appears in the chat panel. Use Ctrl+Z to undo if needed.

Create Apache Hop files from a description

No SSIS package? Describe your process in plain language and Hopify will generate a complete, working skeleton:

@hopify /create Extract changed records from a source table each night, enrich them with a reference lookup, apply business rules, and load the result into a target table with error logging

Hopify infers everything from your description — connections, transforms, actions, control flow — and generates the full project structure:

  • Workflows (.hwf) for the control flow
  • Pipelines (.hpl) for each data flow
  • Connection metadata (.json in metadata/rdbms/) for each database

Any value not mentioned in your description (server names, table names, credentials, file paths, etc.) is replaced with a {{PLACEHOLDER}} token. A PLACEHOLDER_GUIDE.txt is produced as the last file, listing every placeholder with its exact location and instructions on what value to provide:

{{DB_SERVER_SOURCE}}
  File      : metadata/rdbms/source_db.json
  Component : hostname
  Provide   : Hostname or IP of the source database server

{{TABLE_CHANGED_RECORDS}}
  File      : pipelines/extract_changes.hpl
  Component : TableInput - Extract Changes
  Provide   : Name of the source table to extract from (e.g. dbo.SalesOrders)

Once you've filled in the placeholders, use /fix on any file to iterate.

Output Structure

/convert output

Files are written to the open workspace folder, or to a folder you pick, or to ~/Documents/hopify-output as a fallback.

<output-root>/
├── masked_<name>.dtsx            ← masked input (for review)
├── token-map-<project-name>.json ← token → original value (sensitive — do not commit)
└── <project-name>/
    ├── workflows/                 ← .hwf files
    ├── pipelines/                 ← .hpl files
    ├── metadata/rdbms/            ← .json connection metadata
    └── CONVERSION_NOTES.txt       ← warnings, unmapped components, effort estimate

Security: token-map-<project-name>.json contains original sensitive values. Add it to your .gitignore / .tfignore. Multiple conversions each get their own token-map file — no overwrites.

/create output

Same root, no masked file or token map — placeholders stay in the files for you to fill in.

<output-root>/
└── <project-name>/
    ├── workflows/                 ← .hwf files
    ├── pipelines/                 ← .hpl files
    ├── metadata/rdbms/            ← .json connection metadata
    └── PLACEHOLDER_GUIDE.txt      ← one entry per {{PLACEHOLDER}} with location and instructions

Supported Components

  • Control Flow: Execute SQL Task, Execute Package Task, Data Flow Task, Script Task (C#), Sequence Container, For/ForEach Loop Container, Send Mail Task, FTP Task, File System Task, Web Service Task
  • Data Flow: OLE DB Source/Destination, Flat File Source/Destination, Excel Source/Destination, Lookup, Derived Column, Conditional Split, Sort, Aggregate, Data Conversion, Merge Join, Union All, Multicast, Row Count, Script Component

Privacy

Sensitive values are never sent to the Copilot model. All masking and restoration happens locally inside the extension.

License

MIT

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