Update README.md
Browse files
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. [
|
| 36 |
-
7. [
|
| 37 |
-
8. [
|
| 38 |
-
9. [
|
| 39 |
-
10. [
|
|
|
|
| 40 |
- [RDP (Recommended)](#rdp-recommended)
|
| 41 |
- [SSH Access](#ssh-access)
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 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 |
-
- **
|
| 273 |
-
- **Container Start**:
|
| 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
|
| 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 |
|