83

In Visual Studio Code, in the launch.json file that launches the app I'm writing, how do I add command line arguments?

1

3 Answers 3

101

As described in the documentation, you need to use the args attribute. E.g.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Debug App",
            "program": "${workspaceFolder}/main.js",
            "args": ["arg1", "arg2", "arg3"]
        }
    ]
}
8
  • 1
    @eigenfield have you tried filing a bug report with Visual Studio Code or Kotlin? Commented Jan 25, 2021 at 1:11
  • 16
    just to clarify args array, "args": ["key=value", "key=value"] Commented Jul 1, 2021 at 17:15
  • @AwaisNasir is that suggestion for Kotlin? Or in general? In practice, I've used simple strings and not key-value pairs. Commented Jul 2, 2021 at 12:35
  • 1
    @JonathanBenn I don't know about kotlin, thats the general solution, for me key value pair solution worked and not simple strings Commented Jul 2, 2021 at 12:43
  • 1
    If I run this as is, I get an error: launch: property 'cwd' is missing or empty. I had to manually add this line to the launch.json to get it to work ``` "cwd": "${workspaceFolder}" ```
    – Raleigh L.
    Commented Sep 7, 2022 at 3:36
42

I pass arguments by this way for the python program, it may work for nodejs:

{
    "type": "node",
    "request": "launch",
    "name": "Debug App",
    "program": "${workspaceFolder}/main.js",
    "args": ["--arg1", "value1", "--arg2", "value2"]
}
2
  • 3
    Works perfectly for me on Python. Thanks Commented Oct 24, 2023 at 14:40
  • Still work perfectly for me as well :D
    – Navid Shad
    Commented Feb 27 at 12:21
0

In settings.json in the .vscode folder you can pass an env file.

settings.json

{
    "python.testing.pytestArgs": [
        "."
    ],
    "python.testing.unittestEnabled": false,
    "python.testing.pytestEnabled": true,
    "python.envFile": "${workspaceFolder}/env"

}

and the env file

FLASK_ENV=test
1
  • 1
    settings.json and launch.json are different files for different purposes. And yes, launch.json exists on macOS too, it is just not created out of the blue, it is created when a run configuration is created.
    – axiac
    Commented Jan 9 at 16:16

Not the answer you're looking for? Browse other questions tagged or ask your own question.