Skip to main content

Overview

AtlasOS uses YAML configuration files to define system modifications in a declarative format. These files are located in the Configuration/ directory and are organized by purpose and category.

Directory Structure

Configuration/
├── atlas/              # Core Atlas configuration
│   ├── start.yml      # Initial setup tasks
│   ├── services.yml   # Service configurations
│   ├── components.yml # Windows component modifications
│   ├── appx.yml       # App package management
│   ├── default.yml    # Default settings
│   └── revert.yml     # Revert scripts setup
├── tweaks/            # Categorized system tweaks
│   ├── debloat/      # Remove unnecessary features
│   ├── performance/  # Performance optimizations
│   ├── privacy/      # Privacy enhancements
│   ├── qol/          # Quality of life improvements
│   ├── security/     # Security configurations
│   ├── networking/   # Network optimizations
│   ├── misc/         # Miscellaneous tweaks
│   └── scripts/      # Script-based tweaks
├── custom.yml         # Root orchestration file
└── tweaks.yml         # Tweaks orchestration file

YAML File Structure

All configuration files follow a standardized YAML structure:
---
title: Descriptive Title
description: What this configuration does and why
actions:
  - !actionType:
    parameter: value
  - !actionType:
    parameter: value

Required Fields

title
string
required
Human-readable name for the configuration
description
string
required
Explanation of what the configuration does
actions
array
required
List of actions to execute

Optional Fields

onUpgrade
boolean
default:"true"
Whether to run during playbook upgrades

Core Configuration Files

services.yml

Configures Windows services and drivers to reduce background resource usage.
---
title: Services and Drivers
description: Configures services and drivers to reduce background system resource utilization
onUpgrade: false
actions:
  # Back up default Windows services & drivers
  - !powerShell:
    command: |
      .\BACKUP.ps1 -FilePath """$([Environment]::GetFolderPath('Windows'))\AtlasModules\Other\winServices.reg"""
    wait: true
    exeDir: true

  - !writeStatus: {status: 'Disabling File Sharing'}
  - !powerShell:
    command: '.\AtlasModules\Scripts\ScriptWrappers\DisableFileSharing.ps1 -Silent'
    exeDir: true
    wait: true
    runas: currentUserElevated

  - !writeStatus: {status: 'Disabling Location'}

custom.yml

The root orchestration file that coordinates all configuration tasks.
---
title: Root Playbook File
description: Runs all of the Playbook files
actions:
  # Load default user registry hive
  - !powerShell:
    command: 'reg load HKU\AME_UserHive_Default C:\Users\Default\NTUSER.DAT'
    oobe: false
    wait: true
  
  - !writeStatus: { status: "Deleting old AtlasOS folders" }
  - !powerShell:
    command: '.\STOPFOLDERPROC.ps1'
    exeDir: true
    onUpgrade: true
    wait: true
    runas: currentUserElevated
  
  - !writeStatus: { status: "Copying files" }
  - !powerShell:
    command: |
      $windir = [Environment]::GetFolderPath('Windows')
      @(
          'AtlasModules',
          'AtlasDesktop'
      ) | ForEach-Object {

Tweak Categories

Debloat

Removes unnecessary Windows features, scheduled tasks, and bloatware. Example: Disable Scheduled Tasks
---
title: Disable Scheduled Tasks
description: Disables scheduled tasks to prevent automatic tasks from running at startup, consuming resources and collecting user data
actions:
    # Updates compatibility database
  - !scheduledTask: {path: '\Microsoft\Windows\Application Experience\PcaPatchDbTask', operation: disable, ignoreErrors: true}

    # UCPD - might not exist on all installs, so ignore errors
  - !scheduledTask: {path: '\Microsoft\Windows\AppxDeploymentClient\UCPD velocity', operation: disable, ignoreErrors: true}

    # Data collection
  - !scheduledTask: {path: '\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector', operation: disable, ignoreErrors: true}

    # CEIP - safety measure
  - !scheduledTask: {path: '\Microsoft\Windows\Customer Experience Improvement Program\Consolidator', operation: disable, ignoreErrors: true}
  - !scheduledTask: {path: '\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip', operation: disable, ignoreErrors: true}
  • config-content-delivery.yml - Disable content delivery features
  • config-storage-sense.yml - Configure Storage Sense
  • disable-reserved-storage.yml - Disable reserved storage
  • disable-scheduled-tasks.yml - Disable telemetry scheduled tasks
  • hide-unused-security-pages.yml - Hide unused security settings

Performance

Optimizations to improve system responsiveness and reduce resource usage. Example: Configure MMCSS
---
title: Configure the Multimedia Class Scheduler Service
description: Configures MMCSS for the best performance
actions:
    # Set system responsiveness to 10%
    # Allocates less CPU resources to tasks that request it such as browsers
  - !registryValue:
    path: 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile'
    value: 'SystemResponsiveness'
    data: '10'
    type: REG_DWORD
  • config-automatic-maintenance.yml - Configure Windows maintenance
  • config-mmcss.yml - Multimedia Class Scheduler Service settings
  • disable-auto-folder-discovery.yml - Disable automatic folder type detection
  • disable-background-apps.yml - Prevent apps from running in background
  • disable-fth.yml - Disable Fault Tolerant Heap
  • disable-game-bar.yml - Disable Xbox Game Bar
  • disable-sleep-study.yml - Disable Modern Standby sleep study
  • respect-power-modes-search.yml - Make search respect power modes

Privacy

Enhances user privacy by disabling telemetry and data collection.
Telemetry (privacy/telemetry/)
  • disable-activation-telemetry.yml - Disable activation telemetry
  • disable-ceip.yml - Disable Customer Experience Improvement Program
  • disable-diagnostic-tracing.yml - Disable diagnostic tracing
  • disable-dotnet-cli-telemetry.yml - Disable .NET CLI telemetry
  • disable-input-telemetry.yml - Disable input data collection
  • disallow-data-collection.yml - Disallow general data collection
Other Privacy
  • Advertising controls
  • Cloud sync settings
  • Cortana configuration
  • Feedback controls
  • OneDrive integration

Quality of Life (QOL)

Usability improvements and annoyance removals.
  • add-sharing-settings-shortcut.yml - Add sharing settings to context menu
  • bcdedit-tweaks.yml - Boot configuration tweaks
  • best-wallpaper-quality.yml - Set maximum wallpaper quality
  • config-powershell.yml - Configure PowerShell environment
  • config-start-menu.yml - Start menu customization
  • disable-auto-app-archival.yml - Prevent automatic app archival
  • disable-dynamic-lighting.yml - Disable RGB lighting control
  • disable-mouse-accel.yml - Disable mouse acceleration
  • config-windows-ink-workspace.yml - Configure Windows Ink

Security

Security-related configurations.
  • Defender settings
  • Firewall rules
  • Security mitigations
  • User Account Control settings

Networking

Network stack optimizations and configurations.
  • TCP/IP stack optimizations
  • DNS configuration
  • Network adapter settings
  • QoS settings

Miscellaneous

Other system tweaks that don’t fit specific categories.
  • add-music-videos-to-home.yml - Add media folders to home
  • add-newUser-script.yml - Add new user setup script
  • config-oem-information.yml - Set OEM information
  • config-time.yml - Time and timezone configuration
  • create-shortcuts.yml - Create system shortcuts
  • delete-windows-specific-files.yml - Remove Windows-specific files
  • enable-notifications.yml - Enable notification system
  • enable-winre.yml - Enable Windows Recovery Environment

Scripts

Script-based tweaks that require more complex logic.

Action Types

Registry Actions

- !registryValue:
  path: 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile'
  value: 'SystemResponsiveness'
  data: '10'
  type: REG_DWORD
  operation: add  # or delete
path
string
required
Registry key path
value
string
required
Registry value name
data
string
Value data (for add operation)
type
string
Registry value type: REG_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_MULTI_SZ
operation
string
default:"add"
Operation: add or delete

Scheduled Task Actions

- !scheduledTask:
  path: '\Microsoft\Windows\Application Experience\PcaPatchDbTask'
  operation: disable
  ignoreErrors: true
path
string
required
Task path in Task Scheduler
operation
string
required
Operation: disable, enable, or delete
ignoreErrors
boolean
default:"false"
Continue if task doesn’t exist

PowerShell Actions

- !powerShell:
  command: '.\BACKUP.ps1 -FilePath "path\to\file.reg"'
  wait: true
  exeDir: true
  runas: currentUserElevated
  oobe: false
  onUpgrade: true
command
string
required
PowerShell command or script to execute
wait
boolean
default:"false"
Wait for command to complete before continuing
exeDir
boolean
default:"false"
Execute from playbook’s Executables directory
runas
string
Execution context: currentUser, currentUserElevated, system
oobe
boolean
default:"true"
Run during Out-Of-Box Experience (OOBE)
onUpgrade
boolean
default:"true"
Run during playbook upgrades

Command Actions

- !cmd:
  command: '"AtlasDesktop\3. General Configuration\Location\Disable Location (default).cmd" /silent'
  exeDir: true
  wait: true
  runas: currentUserElevated
command
string
required
Command or batch file to execute
exeDir
boolean
default:"false"
Execute from playbook’s Executables directory
wait
boolean
default:"false"
Wait for command to complete
runas
string
Execution context: currentUser, currentUserElevated, system

Task Actions

- !task:
  path: 'atlas/services.yml'
path
string
required
Relative path to another YAML configuration file

Service Actions

- !service:
  name: 'DiagTrack'
  operation: delete
name
string
required
Service name
operation
string
required
Operation: disable, enable, delete, start, stop

Status Update Actions

- !writeStatus:
  status: 'Optimizing PowerShell'
status
string
required
Status message to display to user

Best Practices

Use Descriptive Names

File names should clearly indicate what the configuration doesGood: disable-scheduled-tasks.ymlBad: tasks.yml

Add Comments

Include comments explaining why changes are made
# Updates compatibility database
- !scheduledTask: {...}

Handle Errors

Use ignoreErrors: true for optional or system-specific tasks
ignoreErrors: true

Test Upgrades

Set onUpgrade: false for one-time setup tasks
onUpgrade: false

Execution Order

Configuration files are executed in this order:
  1. atlas/start.yml - Initial setup
  2. atlas/services.yml - Service configuration
  3. atlas/components.yml - Component modifications
  4. atlas/appx.yml - App package management
  5. atlas/default.yml - Default settings
  6. atlas/revert.yml - Revert script setup
  7. tweaks.yml - All tweaks orchestration
The custom.yml file orchestrates this execution order and includes additional setup and cleanup tasks.

Playbook Structure

Understand the overall playbook format

Executables

Learn about scripts and tools