# Command Line Interface for Processing 4.4.1 with VS Code

**URL:** <https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391>\
**Category:** Processing\
**Created:** [May 14, 2025, 8:16pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391 "2025-05-14T20:16:07Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![MSousa](https://avatars.discourse-cdn.com/v4/letter/m/c0e974/32.png) [@MSousa](https://discourse.processing.org/u/MSousa)\
**Post date:** [May 14, 2025, 8:16pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/1 "2025-05-14T20:16:07Z")

</div>

I am trying to run Processing in VSCode. It is looking for the processing-java CLI. I cannot find it anywhere. I have seen it in very old version of Processing. Is it not part of the installation?

---

<div class="post-metadata">

**Author:** ![ProcessingOrg](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/processingorg/32/18341_2.png) [@ProcessingOrg](https://discourse.processing.org/u/ProcessingOrg)\
**Post date:** [May 15, 2025, 10:27am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/3 "2025-05-15T10:27:56Z")

</div>

Hi @MSousa and thanks for your question. Which operating system are you using?

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [May 16, 2025, 2:16am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/4 "2025-05-16T02:16:03Z")

</div>

Hello,

_processing-java.exe_ is not included with Processing 4.4.1 it seems.

Processing 4.4.3 (beta) has some new options:

> <https://github.com/processing/processing4/issues/1097>
>
> \### Most appropriate sub-area of Processing 4?
> 
> Utilities, Core/Environment/Rend…ering
> 
> \### Processing version
> 
> 4.4.3
> 
> \### Operating system
> 
> Windows
> 
> \### Steps to reproduce this
> 
> processing cli --sketch=c:\\test\\shapes --run
> 
> \### snippet
> 
> \`\`\`processing
> 
> void setup() {
> size(500,500)
> }
> 
> void draw() {
> 
> }
> \`\`\`
> 
> 
> \### Additional context
> 
> The cli command works great in Linux but doesn't exist in windows.
> 
> \### Would you like to work on the issue?
> 
> no

This works from the W10 command-line:

> D:\Program\_Portable\Processing-4.4.3\>processing cli --sketch=“D:\Users\GLV\Documents\P4\world\_rotation” --run

I tried to get this to work with VS Code using this extension:  
_[Processing VSCode - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Luke-zhang-04.processing-vscode)_

It does not work in VS Code:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/4/7/47197dfb609f644634d6ab2e96519a1cede6f0f7.png)

That is as far as I got with this.

`:)`

---

<div class="post-metadata">

**Author:** ![stefterv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/stefterv/32/21678_2.png) [@stefterv](https://discourse.processing.org/u/stefterv)\
**Post date:** [May 16, 2025, 6:12am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/5 "2025-05-16T06:12:56Z")

</div>

`PS C:\Users\Stef-\Downloads\RotatingArcs> & "C:\Program Files\Processing\Processing.exe" cli --sketch=C:\Users\Stef-\Downloads\RotatingArcs --run 2>&1 | Out-String`

Worked for me in VSCode

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [May 16, 2025, 5:49pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/6 "2025-05-16T17:49:18Z")

</div>

> [@stefterv](#):
>
> Worked for me in VSCode

Cool beans! And thank you for that!

It _ **does not work** _ when I use the run button in VS Code and you can see this in the terminal output.

It _ **does work** _ if I launch it manually in the TERMINAL in VS Code:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/9/6/96a0c8c0eb4bab788ab64fb47fc886a3ddf784ae.png)

Any thoughts on how to make this work with this extension?  
_[Processing VSCode - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Luke-zhang-04.processing-vscode)_

And in the future this one?  
_[Processing Language Server Extension for VSCode](https://discourse.processing.org/t/processing-language-server-extension-for-vscode/45246)_

Note to anyone visiting this post:  
I am using Processing 4.4.3 (Beta)

`:)`

---

<div class="post-metadata">

**Author:** ![stefterv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/stefterv/32/21678_2.png) [@stefterv](https://discourse.processing.org/u/stefterv)\
**Post date:** [May 16, 2025, 10:34pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/7 "2025-05-16T22:34:15Z")

</div>

@glv Not sure how to make it work with the existing extensions, I could take a look at a later stage.

In the mean time, I have created a new one since there’s a lot happened with Processing under the hood to make some of it a lot easier to set up.

If you want, please give a try!

### Functionality

- Language Server Support, have the IDE give you suggestions on your code.
- Easy to use, no more need to point VSCode to where Processing is installed.
- Syntax Highlighting
- Play/Stop buttons

> **[Release Processing VSCode Extension Proof Of Concept ·...](https://github.com/processing/processing-vscode-extension/releases/tag/latest)**
>
> This is a pre-release of a Processing for VS Code extension.
> Download the supported preview version of Processing from https://github.com/Stefterv/processing4/releases/tag/processing-1376-4.4.76
> Ma...

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [May 16, 2025, 11:02pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/8 "2025-05-16T23:02:47Z")

</div>

> [@stefterv](#):
>
> Easy to use, no more need to point VSCode to where Processing is installed.

Hello @stefterv ,

Where is it expecting it to be?

I have been installing portable versions on my D: Drive and renaming folders with the version number.

`:)`

---

<div class="post-metadata">

**Author:** ![stefterv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/stefterv/32/21678_2.png) [@stefterv](https://discourse.processing.org/u/stefterv)\
**Post date:** [May 16, 2025, 11:08pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/9 "2025-05-16T23:08:02Z")

</div>

As long as you launch Processing (my custom 4.4.74) once, it’ll find it itself!

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [May 16, 2025, 11:31pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/10 "2025-05-16T23:31:13Z")

</div>

I am trying!

Processing 4.4.74 is installed on my W10 and I ran it at least once.

This is what VS Code is saying:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/4/0/40ab2410da160ee1d8face606fb3c27e15b91225.png)

---

<div class="post-metadata">

**Author:** ![stefterv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/stefterv/32/21678_2.png) [@stefterv](https://discourse.processing.org/u/stefterv)\
**Post date:** [May 17, 2025, 6:36am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/11 "2025-05-17T06:36:21Z")

</div>

Thank you for trying!

I just tried it on my Windows 10 VM both through the installer and with the portable version in the Downloads and on a second drive. I worked in all cases so not entirely sure what is going on there. I’ll add some more detailled error reporting later so we can diagnose this issue.

---

<div class="post-metadata">

**Author:** ![stefterv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/stefterv/32/21678_2.png) [@stefterv](https://discourse.processing.org/u/stefterv)\
**Post date:** [May 17, 2025, 7:01am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/12 "2025-05-17T07:01:58Z")

</div>

Okay new version that will be a bit more verbose about errors taking place!

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [September 13, 2025, 2:13pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/13 "2025-09-13T14:13:04Z")

</div>

> [@Will the code be organized as this is done in Arduino IDE? VS Code extension](https://discourse.processing.org/t/will-the-code-be-organized-as-this-is-done-in-arduino-ide/47135/2):
>
> Hi @Aigars ! We have had a lot of requests for code folding and other more advanced features for the editor! To keep the PDE simpler and make development easier we were never able to do so, and instead we have launched a [VS Code extension](https://vscode.processing.org) please take a look and let us know what you think!

VS Code is now working!

In my case there some issues with my VS Code and I did a compete uninstall and reinstall and it worked. _I only did this after exhausting all other efforts._

> **[Uninstall Visual Studio Code](https://code.visualstudio.com/docs/setup/uninstall)**
>
> Uninstall Visual Studio Code and clean up.

Thanks @stefterv!

`:)`

---

<div class="post-metadata">

**Author:** ![sableraph](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/sableraph/32/251_2.png) [@sableraph](https://discourse.processing.org/u/sableraph)\
**Post date:** [September 13, 2025, 4:54pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/14 "2025-09-13T16:54:23Z")

</div>

Note that the VS Code extension is now out of preview and officially available at [https://vscode.processing.org](https://vscode.processing.org)

And you don’t need the custom build of Processing to run it anymore. It will work fine with 4.4.6 and above.

---

<div class="post-metadata">

**Author:** ![stefterv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/stefterv/32/21678_2.png) [@stefterv](https://discourse.processing.org/u/stefterv)\
**Post date:** [September 13, 2025, 5:38pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/15 "2025-09-13T17:38:56Z")

</div>

Also thank you everyone for testing before it left preview!

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [September 15, 2025, 1:25am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/16 "2025-09-15T01:25:24Z")

</div>

I was able to use this extension for keywords:

> **[TODO Highlight - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight)**
>
> Extension for Visual Studio Code - highlight TODOs, FIXMEs, and any keywords, annotations...

I combined this:

- [processing4/java/keywords.txt at main · processing/processing4 · GitHub](https://github.com/processing/processing4/blob/main/java/keywords.txt)

- elements from _preferences.txt_

And finally modified _settings.json_:

> **settings.json \< Click here to open!**
>
> ```processing
> {
> "workbench.colorTheme": "Visual Studio Dark",
> "processing.autosave": false,
> "todohighlight.keywords": 
> [
> { "text": "ADD", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ALIGN_CENTER", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ALIGN_LEFT", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ALIGN_RIGHT", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ALPHA", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ALPHA_MASK", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ALT", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "AMBIENT", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ARC", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ARROW", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "ARGB", "color": "#718a62", "backgroundColor": "#000000" },
> { "text": "BACKSPACE", "color": "#718a62", "backgroundColor": "#000000" },
> 
> // I had to remove a lot to post this!
> 
> { "text": "setString", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "setValues", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "sort", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "sortReverse", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "table", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "tan", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "text", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textAlign", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textAscent", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textDescent", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textLeading", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textMode", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textSize", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "texture", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textureMode", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textureWrap", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "textWidth", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "tint", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "title", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "toArray", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "toString", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "translate", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "trim", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "triangle", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "unfold", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "updatePixels", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "vertex", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "XML", "color": "#e2661a", "backgroundColor": "#000000" },
> { "text": "addChild", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "getChildren", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "getContent", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "getFloat", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "getInt", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "getName", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "getString", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "hasChildren", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "hasContent", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "hasValue", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "isRoot", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "listChildren", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "remove", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "removeChild", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "save", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "setContent", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "setFloat", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "setInt", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "setString", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "value", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "width", "color": "#006699", "backgroundColor": "#000000" },
> { "text": "year", "color": "#006699", "backgroundColor": "#000000" },
> // { "text": "z", "color": "#d94a7a", "backgroundColor": "#000000" }
> ],
> 
> "todohighlight.include": 
> [
> "**/*.js",
> "**/*.jsx",
> "**/*.ts",
> "**/*.tsx",
> "**/*.html",
> "**/*.php",
> "**/*.css",
> "**/*.scss"
> ],
> "todohighlight.defaultStyle": { 
> }
> }
> 
> ```

It is the default colors on a black background and not ideal.

I did use Google Gemini to create this after providing it with the files and instructions. It took a few passes to get this right but was much easier than a manual edit or writing a script to do this.

Not perfect yet:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/2/f/2fa93f66a08a465d3917e2d065bd3a0e9b9f4f94.png)

I will look at some of the different themes and make some adjustments for personal use.

`:)`

---

<div class="post-metadata">

**Author:** ![sableraph](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/sableraph/32/251_2.png) [@sableraph](https://discourse.processing.org/u/sableraph)\
**Post date:** [September 15, 2025, 6:39am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/17 "2025-09-15T06:39:02Z")

</div>

That’s a really creative way to try and solve it 😃

For reference though, the “TODO Highlight” extension isn’t designed for syntax highlighting, it’s only meant to flag a few keywords like TODO or FIXME. That’s why you’re running into so many false positives. I would not recommend this approach.

Proper highlighting of Processing-specific keywords will need to be handled at a lower level by the language server (or the LSP proxy) that @stefterv is currently working on.

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [September 15, 2025, 1:26pm UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/18 "2025-09-15T13:26:39Z")

</div>

> [@sableraph](#):
>
> That’s why you’re running into so many false positives. I would not recommend this approach.

Agreed.  
It was a fun exercise and got me immersed in VS Code and the strengths and challenges of using AI for tasks.  
I like to experiment!

> [@sableraph](#):
>
> Proper highlighting of Processing-specific keywords will need to be handled at a lower level by the language server (or the LSP proxy) that @stefterv is currently working on.

I am looking forward to it!

And links to the references.

`:)`

---

<div class="post-metadata">

**Author:** ![stefterv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/stefterv/32/21678_2.png) [@stefterv](https://discourse.processing.org/u/stefterv)\
**Post date:** [September 18, 2025, 7:08am UTC](https://discourse.processing.org/t/command-line-interface-for-processing-4-4-1-with-vs-code/46391/19 "2025-09-18T07:08:01Z")

</div>

I just pushed an update to the extension that will add the keywords from `keywords.txt` to the language definition. Hope this helps until we can do it in a more robust way.
