VS Code extension

Working in your project

Let the agent work on the folder you have open, then review and apply its changes as diffs.

With Existing project, SiliCode works on code you already have. It reads your project, makes the change you ask for, and sends it back as diffs. Nothing in your folder changes until you apply.

Choosing the project

  1. 1

    Start a new chat and pick Existing project

    A project card appears above the message box. By default it is the folder you have open in VS Code, with its file count and size.

  2. 2

    Change it if you need to

    Press Change to pick Workspace folder, Another folder…, or A .zip archive…. With several folders open, you are asked which one.

  3. 3

    Describe the change and send

    The project is packed and uploaded when you send, not before. Version control folders, dependency folders and build output are left out automatically.

Size limits are the same as on the website; see Limits and retention. If something is too large, the panel says which limit was hit before anything is uploaded.

Reviewing the changes

A project turn ends with a changes card that lists every file touched.

Changes+1 · ~2 · −0

Mrtl/fifo.sv

Mrtl/top.sv

Atb/tb_fifo_full.sv

Apply to my filesReview allKeep mine
The changes card at the end of a project turn.
  • Click a file to open a side-by-side diff: your file on the left, the proposed version on the right.
  • Review all opens the diffs one after another.
  • Apply to my files writes every change in one step. If any file would be deleted, you are asked to confirm first. Edits of your own are never overwritten; see below.
  • Keep mine leaves your files as they are. You can still change your mind later with Apply anyway.

Undo

Applying counts as one edit. Ctrl+Z (Cmd+Z on a Mac) in a changed file reverts it, and Undo in the Explorer brings back created or deleted files.

When you have edited the files too

You can keep working on your files while SiliCode works on its copy. When you apply, each file is merged rather than replaced, the same way Git and most editors combine two sets of changes:

Your fileWhat Apply does
Untouched since the uploadWrites the changed version.
Edited in other placesWrites the change and keeps your edits. The summary lists these files as merged with your own edits.
Already has the changeLeaves the file alone and lists it as already up to date.
Edited on the same linesAsks you first. Apply with Conflict Markers writes both versions into the file for you to choose between; Apply Others Only leaves those files exactly as they are.

Conflict markers are the standard ones. A marked file opens right away, and VS Code shows Accept Current Change, Accept Incoming Change and Accept Both Changes above each marked spot:

A marked conflict
<<<<<<< Your file
  assign full = (count == DEPTH);
=======
  assign full = (count == DEPTH - 1) && wr_en;
>>>>>>> SiliCode (turn 2)

Review shows exactly what Apply would write, marks included, so there are no surprises. You can also apply an older turn after later ones; it writes that turn's own change, never a later version of the file.

Carrying on

Later messages in the same chat keep working on the same project, so you can ask for the next change without uploading again. If you reopen the chat on another machine or in another folder, the panel asks which local folder the changes belong to before applying anything.

For more on what to ask for and how to read the result, see Upload a project and Reading the change report; everything there applies here too.