Skip to content

Instantly share code, notes, and snippets.

@WarningImHack3r
Last active November 27, 2025 18:19
Show Gist options
  • Select an option

  • Save WarningImHack3r/2a38bb66d69fb5e7acd85a8d20de19e6 to your computer and use it in GitHub Desktop.

Select an option

Save WarningImHack3r/2a38bb66d69fb5e7acd85a8d20de19e6 to your computer and use it in GitHub Desktop.
Offline installation of local language models of IntelliJ 2024.1+

Important

I don't use this anymore since 2024.2. This gist should however still be fully valid, except for the missing new data.
Supported languages seem to have changed since 2024.3, but the instructions should still be mostly working.
I'll continue updating the instructions based on the comments on this gist if they change, but you should refer to them for the actual data provided by people. Don't hesitate to comment too to contribute!

Introduction

IntelliJ 2024.1 introduced Full Line Code Completion, available as a bundled plugin in your IDE.

Available at Settings > Editor > General > Inline Completion, you can choose to enable them and download them.

For 2024.1, the Settings path is Settings > Editor > General > Code Completion under Machine Learning-Assisted Completion

Offline installation

If you work on an offline machine, there is no official way to install those models. But after digging into the source code and inspecting the logs with @Kilehynn, we managed to find a way.

Available models

By default, Java and Kotlin models are already installed. "CSS-like" and "JavaScript/Typescript" are the same model internally (it's called "WS", for WebStorm), and "Go" is separate.

Python, PHP and Ruby are also available, but we don't use them so we didn't search the URLs and UUIDs for them.

Installation of new models

To begin, close IntelliJ and head over to your IntelliJ system directory.

  1. Move into the full-line directory, then into models. Here, you'll see two UUIDs, one for Java and the other for Kotlin models. models.xml is used by the IDE as a list of installed models.
  2. Each model is structured in the following way:
    1. Their folder is an UUID (like the existing models), common for every installation. See info.md to figure out the one for your model.
    2. They contain 3 flcc.* files (flcc.bpe, flcc.json, flcc.model), which AFAIK tell the model how to work
    3. They contain a ready.flag file, an empty file probably indicating the IDE the model is successfully downloaded
    4. Finally, a full-line-inference.zip_extracted directory, containing the executable model as well as its signature in a sign file.
  3. For each model, download the flcc.* files and the model.xml if it exists by downloading https://download-cdn.jetbrains.com/resources/ml/full-line/models/[Name]/[Version]-native-llama-bundle/local-model-[Name]-[Version]-native-llama-bundle.jar - and extracting the contents of the [Name]-[Version]-native-llama-bundle folder (new in 2024.2) - like you would with a .zip file. (Replace the values in the URL by the one in the info.md table.)
  4. For each model, create an empty ready.flag file
  5. Finally, get the models by copying the full-line-inference.zip_extracted folder from the Java or Kotlin model into each new model. Yes, all models are the same. If you want to download them manually yourself, you can use the URL: https://download-cdn.jetbrains.com/resources/ml/full-line/servers/[FLI_version]/[ARCH]/full-line-inference.zip (2024.1 URL required the OS: https://download-cdn.jetbrains.com/resources/ml/full-line/servers/[FLI_version]/[OS]/[ARCH]/full-line-inference.zip ; tested OS and arch in the OS_arch.md file)
  6. Finally, you have to add your new model(s) to the models.xml file as such:
<models version="1">
  ...
  <model>
    <version>[Version]-native-llama-bundle</version>
    <size>[Size]</size>
    <languages>
      <language>[One of Languages per line]</language>
      ...
    </languages>
    <binary>flcc.model</binary>
    <bpe>flcc.bpe</bpe>
    <config>flcc.json</config>
    <native>
      <archive>full-line-inference.zip</archive>
      <version>1.0.84</version> <!-- see second table in `info.md` -->
    </native>
    <changelog>[Some text]</changelog>
  </model>
  ...
</models>

An example is available in the attached models_windows_example.xml (IntelliJ doesn't seem to care about size or changelog, you can probably leave them empty/use the same for every installation)

Finally, restart IntelliJ and check the settings, installed languages should all be checked!

Disclaimer: despite all our efforts, some info might be missing or inaccurate, the overall idea should be working though

Data per language (pre-2024.3)

Language UUID Languages Name Version Size (Windows) Size (Linux) Size (macOS)
Java (bundled) d7d819ae-0fe0-3f70-8073-544e7d22c593 (2024.1) - c48ca7c9-912d-3052-86e4-97bf4264fcb1 (2024.1.2) - 21caac6d-7218-3c39-bb75-af39a95d066f (2024.2) java - 0.1.42 (2024.1) - 0.1.45 (2024.1.2) - 0.1.49 (2024.2) 68857785 - -
Kotlin (bundled) 8f33c61d-b8f7-3d5d-8ceb-306e4f1e7ac7 (2024.1) - aaa291af-1208-3303-b829-495940d54ed1 (2024.1.2) - 850b40ad-c692-3f36-8319-eeb4275a91d2 (2024.2) kotlin - 0.1.130 (2024.1) - 0.1.157 (2024.1.2) - 0.1.163 (2024.2) 68858294 - -
Go 74dfc84b-71f0-3063-aba8-be97f18ae361 (2024.1) - 15c1005b-5a0a-3ed6-9899-e6a0a70d1fd0 (2024.2) golang go 0.1.8 (2024.1) - 0.1.14 (2024.2) 68855458 - -
WebStorm 80f4ff53-d098-3630-a26c-390896efcda0 (2024.1) - a728070c-0f59-34eb-8eba-6b9ae5aa7481 (2024.2) css, javascript & ws ws 0.1.14 (2024.1) - 0.1.20 (2024.1.2) - 0.1.25 (2024.2) 68852246 - -
Python - - - - - - -
PHP - - - - - - -
Ruby - - - - - - -

Data per language (post-2024.3)

See comments

full-line-inference.zip versions

IDE version full-line-inference.zip version
2024.1 1.0.84
2024.1.2 1.0.103
2024.2 1.2.112
2025.1 2.4.164
<models version="1">
<model>
<version>0.1.42-native-llama-bundle</version>
<size>68857785</size>
<languages>
<language>java</language>
</languages>
<binary>flcc.model</binary>
<bpe>flcc.bpe</bpe>
<config>flcc.json</config>
<native>
<archive>full-line-inference.zip</archive>
<version>1.0.84</version>
</native>
<changelog>- LLaMA model for Java trained on split with_cg + weights averaging (last 6)</changelog>
</model>
<model>
<version>0.1.130-native-llama-bundle</version>
<size>68858294</size>
<languages>
<language>kotlin</language>
</languages>
<binary>flcc.model</binary>
<bpe>flcc.bpe</bpe>
<config>flcc.json</config>
<native>
<archive>full-line-inference.zip</archive>
<version>1.0.84</version>
</native>
<changelog>- Updated LLaMA model for Kotlin trained on split with CG (no finetune)</changelog>
</model>
<model>
<version>0.1.14-native-llama-bundle</version>
<size>68852246</size>
<languages>
<language>css</language>
<language>javascript</language>
<language>ws</language>
</languages>
<binary>flcc.model</binary>
<bpe>flcc.bpe</bpe>
<config>flcc.json</config>
<native>
<archive>full-line-inference.zip</archive>
<version>1.0.84</version>
</native>
<changelog>- Init LLaMA model for all ws languages with cg</changelog>
</model>
<model>
<version>0.1.8-native-llama-bundle</version>
<size>68855458</size>
<languages>
<language>go</language>
</languages>
<binary>flcc.model</binary>
<bpe>flcc.bpe</bpe>
<config>flcc.json</config>
<native>
<archive>full-line-inference.zip</archive>
<version>1.0.84</version>
</native>
<changelog>- LLaMA model without vendors</changelog>
</model>
</models>

Available OS: windows, linux (probably darwin for macOS, not tested though)
Available arch: x86_64 (others not tested)

Note: You can try to mix and match values from both lists above, there is no guarantee of success though, even though it should very likely work.

@WarningImHack3r
Copy link
Author

@bestv5 this sounds a bit tedious to download a full IDE only to use it to gather a bundled zip file. Aren't they available online similarly to what we found out from our instructions above?

@bestv5
Copy link

bestv5 commented Nov 27, 2025

@bestv5 This sounds a bit tedious to download a full IDE just to use it to gather a bundled zip file. Aren't they available online similarly to what we found out from our instructions above?

@WarningImHack3r Actually it's feasible. I compared the contents of local-model-ws-0.1.20-native-llama-bundle.jar and WebStorm/plugins/fullLine/ws-0.1.38-native-llama-bundle.zip (see Figure 1 and Figure 2), and found it can be downloaded through your method. Steps are as follows:

Download local-model-[Name]-[Version]-native-llama-bundle.jar and extract it.
Compress the directory ws-0.1.20-native-llama-bundle into full-line-model-ws.zip.
Place it in the WebStorm/plugins/fullLine directory.

No need to download full-line-inference.zip separately. Not sure if this method would be simpler.

(图1)image

(图2)
微信图片_20251127092938_2_862

@WarningImHack3r
Copy link
Author

@bestv5 good to know! Thanks for this info.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment