Chat Reference: JetBrains AI Alternatives in DoD IL5 Environments

Reference thread exploring multi-file LLM context workflows under Department of Defense (DoD) / Department of War (DoW) Impact Level 5 (IL5) restrictions and non-administrative user permissions.

User
the ask sage plugin for intellij idea and pycharm is really low quality and only allows attaching one file
Assistant
It can be incredibly frustrating when a developer tool limits your workflow, especially when you need to feed multiple files into an AI assistant to provide the proper context for a bug or feature.

If the Ask Sage plugin is falling short, you have a few excellent, high-quality alternatives for IntelliJ IDEA and PyCharm that handle multi-file context seamlessly:

1. GitHub Copilot

2. Cursor (Alternative IDE)

3. Continue (Open-Source Plugin)

4. JetBrains AI Assistant

User
I have to limit my selections to only DOD/DOW approved IL5 certified LLMs
Assistant
That restriction completely changes the landscape. Operating within the Department of War (DoW) / Department of Defense (DoD) security framework means standard commercial plugins like GitHub Copilot, Cursor, or standard JetBrains AI are entirely out of the question since they do not route through an authorized Impact Level 5 (IL5) environment.

Because you are limited strictly to IL5 accredited models handling Controlled Unclassified Information (CUI), your approach to JetBrains IDE coding assistants must pivot to these specific options:

1. Ask Sage (Via the Enterprise Web UI)

2. Continue (The Open-Source Plugin Route via IL5 API Endpoints)

3. AWS Bedrock via AWS GovCloud (Custom IDE Integration)

User
The Continue tool did not work because it requires running a binary in the background like Node.js and I don't have administrator rights on my development laptop.
Assistant
Got it, that completely rules out Continue and similar plugins that depend on a local agent or helper binary. When you are restricted by both IL5 compliance and no administrator rights, any solution that requires background daemons, node environments, or custom network proxies is off the table.

Since you cannot install local binaries but still need to provide multi-file context to an IL5 certified LLM, you have two primary compliant pathways that work completely within your user-level permissions:

1. Leverage the Ask Sage Web UI (No-Install Path)

Since you already have access to Ask Sage, the most frictionless option is to completely bypass their IDE plugin.

2. Use a "Zero-Install" Python Script to Combine Context

If you want to feed multiple files into an LLM but the interface you are using only allows one file at a time (like the Ask Sage plugin or a basic chat window), you can use a simple, user-level Python script inside PyCharm to merge your files into a single context document.

import os

# Define the files you want to include in your context
files_to_combine = [
    "src/main.py",
    "src/utils.py",
    "tests/test_main.py"
]

output_file = "ai_context.txt"

with open(output_file, "w", encoding="utf-8") as outfile:
    for file_path in files_to_combine:
        if os.path.exists(file_path):
            outfile.write(f"\n\n=== START OF FILE: {file_path} ===\n")
            with open(file_path, "r", encoding="utf-8") as infile:
                outfile.write(infile.read())
            outfile.write(f"\n=== END OF FILE: {file_path} ===\n")
        else:
            print(f"Warning: {file_path} not found.")

print(f"Combined context saved to {output_file}. You can now attach this single file.")
User
I like the option of a zipfile. Can I load my complete codebase inside the zipfile and then refer to files inside by filename?
Assistant
Yes, you can absolutely do this. Loading a complete codebase as a .zip file is exactly how the Ask Sage Web Workspace is designed to ingest large, multi-file datasets natively.

When you upload a .zip file into your Ask Sage browser session, the platform unpacks it and processes the contents into its underlying dataset context.

How to format your prompts for best results:

Once the zip file is fully processed by the interface, you can treat the AI as if it has your entire directory structure open. Use these prompt styles to pinpoint files and folders:

⚠️ Crucial Step Before You Zip:

Because you are working in a DoD IL5 secure environment, you must ensure you aren't accidentally exporting hidden files or local build metadata that could corrupt the AI's context or trigger compliance flags.

Before right-clicking and zipping your folder, manually delete or exclude:

User
Can you convert that python script into Perl5?
Assistant
Here is the Perl 5 version of the script. It does not require any external modules or CPAN installations, meaning you can run it instantly using your system's native Perl environment without administrator rights.
#!/usr/bin/env perl
use strict;
use warnings;
use File::Spec;

# Define the files you want to include in your context
my @files_to_combine = (
    'src/main.py',
    'src/utils.py',
    'tests/test_main.py'
);

my $output_file = 'ai_context.txt';

# Open the output file for writing
open(my $outfile, '>', $output_file) or die "Cannot open '$output_file' for writing: $!";

foreach my $file_path (@files_to_combine) {
    if (-e $file_path) {
        print "Processing: $file_path\n";
        print $outfile "\n\n=== START OF FILE: $file_path ===\n";
        
        # Open and read the source file
        if (open(my $infile, '<', $file_path)) {
            while (my $line = <$infile>) {
                print $outfile $line;
            }
            close($infile);
        } else {
            warn "Warning: Could not open '$file_path' for reading: $!\n";
        }
        
        print $outfile "\n=== END OF FILE: $file_path ===\n";
    } else {
        warn "Warning: '$file_path' not found.\n";
    }
}

close($outfile);
print "Combined context saved to '$output_file'. You can now attach this single file.\n";
User
Can I use that method even though I am working on a Java Spring Boot project?
Assistant
Yes, absolutely. You can use this method for any programming language or project type, including a Java Spring Boot application.

Since Perl reads files as raw text, it doesn't care whether the source code is written in Python, Java, XML, or YAML. The IL5 certified LLMs inside Ask Sage are highly proficient in Java and will easily parse the structure, annotations, and dependencies of a Spring Boot application once the text is provided.

Here is an updated Perl script tailored specifically for a Java Spring Boot project structure, pointing to standard file paths like your pom.xml and Java classes:
#!/usr/bin/env perl
use strict;
use warnings;

# Define your Java Spring Boot files here
my @files_to_combine = (
    'pom.xml',
    'src/main/resources/application.properties',
    'src/main/java/com/example/demo/DemoApplication.java',
    'src/main/java/com/example/demo/controller/ApiController.java'
);

my $output_file = 'ai_context.txt';

open(my $outfile, '>', $output_file) or die "Cannot open '$output_file' for writing: $!";

foreach my $file_path (@files_to_combine) {
    if (-e $file_path) {
        print "Processing: $file_path\n";
        print $outfile "\n\n=== START OF FILE: $file_path ===\n";
        
        if (open(my $infile, '<', $file_path)) {
            while (my $line = <$infile>) {
                print $outfile $line;
            }
            close($infile);
        } else {
            warn "Warning: Could not open '$file_path' for reading: $!\n";
        }
        
        print $outfile "\n=== END OF FILE: $file_path ===\n";
    } else {
        warn "Warning: '$file_path' not found.\n";
    }
}

close($outfile);
print "Combined context saved to '$output_file'.\n";

⚠️ What to exclude if you use the Zip File method instead:

If you decide to stick with the browser zip file upload method for your Spring Boot application, make sure to delete or exclude these standard Java build directories before creating the archive to save space and respect context limits: