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!
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 CompletionunderMachine Learning-Assisted Completion
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.
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.
To begin, close IntelliJ and head over to your IntelliJ system directory.
- Move into the
full-linedirectory, then intomodels. Here, you'll see two UUIDs, one for Java and the other for Kotlin models.models.xmlis used by the IDE as a list of installed models. - Each model is structured in the following way:
- Their folder is an UUID (like the existing models), common for every installation. See
info.mdto figure out the one for your model. - They contain 3
flcc.*files (flcc.bpe,flcc.json,flcc.model), which AFAIK tell the model how to work - They contain a
ready.flagfile, an empty file probably indicating the IDE the model is successfully downloaded - Finally, a
full-line-inference.zip_extracteddirectory, containing the executable model as well as its signature in asignfile.
- Their folder is an UUID (like the existing models), common for every installation. See
- For each model, download the
flcc.*files and themodel.xmlif 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-bundlefolder (new in 2024.2) - like you would with a.zipfile. (Replace the values in the URL by the one in theinfo.mdtable.) - For each model, create an empty
ready.flagfile - Finally, get the models by copying the
full-line-inference.zip_extractedfolder 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 theOS_arch.mdfile) - Finally, you have to add your new model(s) to the
models.xmlfile 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


@mathiasbn don't worry I'm fine with helping you out, I'd be happy to help more people by updating my guide! :)
I also might have read too quickly what you said earlier, my bad about that!!
Alright, so first off yeah it makes sense that UUIDs, versions, changelog, and even model size now differ in 2024.1.2 since 2024.1, JB has updated its models throughout the IDE updates: having some different data that mine is fine, the process is the only thing that matters for you here :)
I'm still running 2024.1 so I didn't bother updating the info here since, that's why your info can be precious to update it later on!
However, if by following the exact same steps (even with diverging data and output due to the version diffs) as me it's no longer working, I'm not sure what's going wrong... Try looking at the IDE logs to figure out if it's erroring somewhere, or ping Peter from the earlier discussion here between them and me to see if they can help you!
If you figure it out, I'd be more than happy to update my instructions with your findings!
On my side, I'll probably upgrade when 2024.2 gets released (which shouldn't be far away), so I'll definitely take another look here when I do so!