NullVoider commited on
Commit
bf5d10a
Β·
verified Β·
1 Parent(s): 176c4f4

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +167 -15
README.md CHANGED
@@ -32,19 +32,20 @@ tags:
32
  - [Prerequisites](#prerequisites)
33
  - [Docker Compose Deployment](#docker-compose-deployment)
34
  - [Testing the Container](#testing-the-container)
35
- 6. [Installed Software](#installed-software)
36
- 7. [Development Environments](#development-environments)
37
- 8. [The-Eye Integration](#the-eye-integration)
38
- 9. [Task Executor API](#task-executor-api)
39
- 10. [Remote Access Methods](#remote-access-methods)
 
40
  - [RDP (Recommended)](#rdp-recommended)
41
  - [SSH Access](#ssh-access)
42
- 11. [Troubleshooting](#troubleshooting)
43
- 12. [CI/CD Integration](#cicd-integration)
44
- 13. [Reporting Issues](#reporting-issues)
45
- 14. [FAQ](#faq)
46
- 15. [License](#license)
47
- 16. [About This Project](#about-this-project)
48
 
49
  ---
50
 
@@ -87,7 +88,7 @@ This container is designed for:
87
  βœ… **RAM** - Customizable memory allocation for smooth performance (minimum 4 GB for smooth experience).
88
  βœ… **Ephemeral State** - Clean isolation with no external dependencies
89
 
90
- **Note**: The virtual storage does not mandate requirement of exactly 2TB of storage in the device running the container. The virtual disk is a growable disk, and 2TB is the cap on the virtual disk.
91
 
92
  ### Development Tools
93
  βœ… **10+ Languages** - Python, Go, Rust, Java, C#, C++, Node.js, TypeScript, Kotlin, Scala
@@ -269,8 +270,8 @@ Pre-installed extensions:
269
  ### Performance Metrics
270
 
271
  **Boot Performance**:
272
- - **Cold Boot**: 25 seconds
273
- - **Container Start**: Same as cold boot
274
  - **Desktop Ready**: Immediate after boot completion
275
 
276
  **Runtime Performance**:
@@ -546,6 +547,157 @@ docker stats win_agent
546
 
547
  ---
548
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  ## Installed Software
550
 
551
  ### Pre-installed Applications
@@ -1961,7 +2113,7 @@ This container is provided "as is" without warranty of any kind.
1961
 
1962
  The **Windows 11 Container** represents a significant advancement in containerized Windows environments. Built for Computer Use Agent development and frontier coding agent evaluation, this project addresses the key challenges faced by developers working with Windows-based automation and AI agents.
1963
 
1964
- Version 2 extends the original CUA environment into a full coding agent evaluation platform. The Task Executor API β€” covering multi-framework test scoring, programmatic lint integration, diff capture, and ground-truth patch similarity scoring β€” was built to support rigorous coding agent benchmarking on a native Windows runtime, a capability absent from Linux-only eval frameworks.
1965
 
1966
  ### Project Goals
1967
 
 
32
  - [Prerequisites](#prerequisites)
33
  - [Docker Compose Deployment](#docker-compose-deployment)
34
  - [Testing the Container](#testing-the-container)
35
+ 6. [Customizing the Image](#customizing-the-image)
36
+ 7. [Installed Software](#installed-software)
37
+ 8. [Development Environments](#development-environments)
38
+ 9. [The-Eye Integration](#the-eye-integration)
39
+ 10. [Task Executor API](#task-executor-api)
40
+ 11. [Remote Access Methods](#remote-access-methods)
41
  - [RDP (Recommended)](#rdp-recommended)
42
  - [SSH Access](#ssh-access)
43
+ 12. [Troubleshooting](#troubleshooting)
44
+ 13. [CI/CD Integration](#cicd-integration)
45
+ 14. [Reporting Issues](#reporting-issues)
46
+ 15. [FAQ](#faq)
47
+ 16. [License](#license)
48
+ 17. [About This Project](#about-this-project)
49
 
50
  ---
51
 
 
88
  βœ… **RAM** - Customizable memory allocation for smooth performance (minimum 4 GB for smooth experience).
89
  βœ… **Ephemeral State** - Clean isolation with no external dependencies
90
 
91
+ **Note**: The virtual storage does not mandate requirement of exactly 2TB of storage in the device running the container. The virtual disk is a growable disk, and 2TB is the cap on the virtual disk.
92
 
93
  ### Development Tools
94
  βœ… **10+ Languages** - Python, Go, Rust, Java, C#, C++, Node.js, TypeScript, Kotlin, Scala
 
270
  ### Performance Metrics
271
 
272
  **Boot Performance**:
273
+ - **Windows Boot**: 25 seconds
274
+ - **Container Start**: Immediate
275
  - **Desktop Ready**: Immediate after boot completion
276
 
277
  **Runtime Performance**:
 
547
 
548
  ---
549
 
550
+ ## Customizing the Image
551
+
552
+ This section walks through the full process of modifying the Windows 11 environment and rebuilding a custom Docker image β€” useful for adding languages, tools, updated scripts, or any workflow-specific configurations and customizations.
553
+
554
+ ### Prerequisites
555
+
556
+ - Repository cloned with QCOW2 downloaded
557
+ - Docker and QEMU utilities installed (`qemu-img` must be on PATH)
558
+ - At least 100 GB free disk space for the conversion steps
559
+
560
+ ---
561
+
562
+ ### Step 1 β€” Modify the YAML Configuration (Optional)
563
+
564
+ If you need to adjust the RAM or CPU core allocation before booting into Windows 11, edit the YAML file inside the `scripts/` directory of the cloned repo:
565
+
566
+ ```bash
567
+ # Example: open and edit the YAML before moving it
568
+ nano scripts/win11.yaml
569
+ ```
570
+
571
+ Then move it to a separate working directory of your choice β€” this directory will be your build workspace for all subsequent steps:
572
+
573
+ ```bash
574
+ mv scripts/win11.yaml /your/working/directory/
575
+ ```
576
+
577
+ > ⚠️ **WARNING**: Only change RAM and CPU core values in the YAML. **Do not change the disk size** β€” altering the disk size will corrupt `data.img` and make it unusable. If that happens, you will need to re-run Step 2 from the original QCOW2 file to start over.
578
+
579
+ ---
580
+
581
+ ### Step 2 β€” Convert the QCOW2 to a Raw Image
582
+
583
+ From the root of the cloned repository, convert the QCOW2 disk image to a raw format that QEMU can use as a mutable disk:
584
+
585
+ ```bash
586
+ qemu-img convert -p -f qcow2 -O raw win11-image/win11.qcow2 data.img
587
+ ```
588
+
589
+ This may take several minutes depending on your disk speed. The `-p` flag shows progress.
590
+
591
+ ---
592
+
593
+ ### Step 3 β€” Create the Windows 11 Directory Structure
594
+
595
+ Navigate to the working directory where you moved the YAML file and create the expected directory layout:
596
+
597
+ ```bash
598
+ cd /your/working/directory
599
+ mkdir windows11-storage
600
+ ```
601
+
602
+ ---
603
+
604
+ ### Step 4 β€” Place the Disk Images
605
+
606
+ Copy or move the `data.img` produced in Step 2 into the directory you just created:
607
+
608
+ ```bash
609
+ # Copy (safe β€” preserves originals)
610
+ cp /path/to/data.img windows11-storage/data.img
611
+
612
+ # Or move (saves disk space if originals are no longer needed)
613
+ mv /path/to/data.img windows11-storage/data.img
614
+ ```
615
+
616
+ ---
617
+
618
+ ### Step 5 β€” Boot and Customize
619
+
620
+ Start the container from your working directory:
621
+
622
+ ```bash
623
+ docker compose -f win11.yaml up -d
624
+ ```
625
+
626
+ Connect via NoMachine or VNC and perform your customizations inside the running Windows 11 environment β€” updating the Task Executor script, installing apps, adding programming languages, configuring tools, or anything else your workflow requires.
627
+
628
+ ---
629
+
630
+ ### Step 6 β€” Clean Up Before Capture
631
+
632
+ Before shutting down, ensure the Windows 11 environment is clean so no personal or session data ends up in your image:
633
+
634
+ - **Browser**: Close all tabs and clear all browsing history, cookies, and cached data in every browser installed
635
+ - **Terminal**: Wipe shell history β€” in the Powershell/Cmd terminal run `Remove-Item (Get-PSReadlineOption).HistorySavePath`
636
+ - **Recent items**: Clear recent files, recent apps, and recent servers from file explorer quick access and app search.
637
+ - **Trash**: Empty the Trash
638
+
639
+ ---
640
+
641
+ ### Step 7 β€” Shut Down and Stop the Container
642
+
643
+ Shut down Windows cleanly from within the OS (Win Key β†’ Power button β†’ Shut Down or Alt+F4 β†’ Shut Down) and wait for the guest to fully power off. Then, from the host terminal in your working directory:
644
+
645
+ ```bash
646
+ docker compose -f win11.yaml down
647
+ ```
648
+
649
+ ---
650
+
651
+ ### Step 8 β€” Convert Back to QCOW2
652
+
653
+ From the `windows11-storage/` directory, convert the modified raw image back to a compressed QCOW2:
654
+
655
+ ```bash
656
+ cd windows11-storage
657
+ qemu-img convert -p -O qcow2 -c data.img win11.qcow2
658
+ ```
659
+
660
+ The `-c` flag enables compression to keep the image size manageable. This step may take several minutes.
661
+
662
+ ---
663
+
664
+ ### Step 9 β€” Move the QCOW2 to the Build Directory
665
+
666
+ Move the new QCOW2 back into the `windows11-storage/` directory of the cloned repository. If a QCOW2 already exists there, remove it first:
667
+
668
+ ```bash
669
+ # Remove existing if present
670
+ rm /path/to/cloned-repo/win11-image/win11.qcow2
671
+
672
+ # Move new QCOW2 into place
673
+ mv windows11-storage/win11.qcow2 /path/to/cloned-repo/windows11-storage/win11.qcow2
674
+ ```
675
+
676
+ ---
677
+
678
+ ### Step 10 β€” Build Your Custom Image
679
+
680
+ From the root of the cloned repository, build the Docker image with your chosen tag:
681
+
682
+ ```bash
683
+ docker build -f win11-base.dockerfile -t <username>/<image-name>:<version-number> .
684
+ ```
685
+
686
+ Example:
687
+ ```bash
688
+ docker build -f win11-base.dockerfile -t myorg/win11-custom:v1 .
689
+ ```
690
+
691
+ Once the build completes, clear the Docker builder cache to avoid storage bloat:
692
+
693
+ ```bash
694
+ docker builder prune --all
695
+ ```
696
+
697
+ Your custom image is ready to use in your workflow.
698
+
699
+ ---
700
+
701
  ## Installed Software
702
 
703
  ### Pre-installed Applications
 
2113
 
2114
  The **Windows 11 Container** represents a significant advancement in containerized Windows environments. Built for Computer Use Agent development and frontier coding agent evaluation, this project addresses the key challenges faced by developers working with Windows-based automation and AI agents.
2115
 
2116
+ Version 1 extends the original CUA environment into a full coding agent evaluation platform. The Task Executor API β€” covering multi-framework test scoring, programmatic lint integration, diff capture, and ground-truth patch similarity scoring β€” was built to support rigorous coding agent benchmarking on a native Windows runtime, a capability absent from Linux-only eval frameworks.
2117
 
2118
  ### Project Goals
2119