Skip to content

Repository files navigation

⚑ Aion

Research platform for OpenAI Codex Desktop profile management and startup analysis


Platform Tauri Rust React Status


Why Aion β€’ Current Status β€’ Features β€’ Architecture β€’ Research β€’ Contributing


πŸ“Œ Current Status

Important

Research Prototype β€” Complete multi-profile isolation has not yet been achieved.

Aion is an experimental Windows application built to investigate whether OpenAI Codex Desktop can be executed as multiple isolated profiles without modifying Codex itself.

The project successfully implements profile management, launch orchestration, runtime monitoring, authentication helpers, and extensive diagnostic tooling.

After extensive reverse engineering and forensic analysis, evidence suggests that additional internal startup behavior inside Codex Desktop affects profile isolation beyond the currently documented configuration layers.

Rather than hiding this result, Aion documents the investigation so future contributors can continue from an advanced starting point.


πŸ’‘ Why Aion

OpenAI Codex Desktop stores much of its runtime state in locations designed around a single user profile. For developers managing multiple OpenAI accounts, client environments, testing scenarios, or research workflows, this creates practical limitations.

Initially, Aion was created to solve that problem. As development progressed, it became clear that the documented launch parameters alone were insufficient to guarantee independent Codex Desktop sessions.

Instead of abandoning the project, Aion evolved into two complementary goals:

  • πŸ—‚οΈ A practical Windows profile manager for Codex Desktop
  • πŸ” An open-source reverse engineering effort documenting the application's startup behavior

Today, the repository contains both production code and a large collection of forensic documentation describing every investigated hypothesis.


βœ… What Aion Currently Provides

Category Capabilities
πŸ—‚οΈ Profile Profile management Β· Isolated directories Β· Isolated launch configuration
πŸ” Security Authentication helpers Β· Per-profile proxy configuration
πŸ“Š Runtime Process monitoring Β· Process management Β· Batch operations
πŸ”¬ Research Forensic tooling Β· Startup diagnostics Β· Reproducible experiments Β· RE documentation

Warning

Aion does not claim to provide guaranteed isolation between multiple OpenAI accounts. Current evidence indicates that additional behavior inside Codex Desktop influences startup and authentication.


πŸ” Current Findings

βœ… Confirmed

# Finding
1 CODEX_HOME controls Codex backend state
2 --user-data-dir controls Chromium user data
3 Electron initializes its own userData directory before the backend is started
4 Codex Desktop performs additional startup work before launching its backend process
5 The startup sequence can terminate before the backend is created
6 Aion correctly configures every documented launch parameter currently known

πŸ§ͺ Investigated

View all investigated areas
Area Notes
Electron startup Analyzed initialization sequence
Backend launch Documented process creation
Process trees Parent-child relationship mapping
Authentication flow Credential propagation tracing
Filesystem activity Runtime artifact comparison
Environment variables Propagation and override analysis
Runtime artifacts Cross-launch artifact diffing
AppModel package behavior Windows package identity analysis
Windows process creation API-level process tracing
Startup timing Sequencing and race conditions
Launch failures Failure mode classification

Multiple hypotheses were investigated, reproduced, and documented. Several were ruled out through controlled experiments.

❓ Still Unknown

Caution

The final condition responsible for preventing reliable multi-profile isolation has not yet been identified.

Current evidence suggests that additional internal behavior inside Codex Desktop influences startup in ways that are not publicly documented. Future contributors may be able to identify the remaining missing component using the forensic reports included in this repository.


πŸš€ Features

Production Ready

Feature Status Description
Profile management βœ… Create, rename, clone and delete profiles backed by UUIDs
Codex executable discovery βœ… Locate Codex Desktop automatically via Windows registry and AppModel metadata
Manual executable selection βœ… Override automatic discovery with a custom executable
Crash-safe configuration storage βœ… Atomic JSON writes with temporary files and replacement
Runtime process monitoring βœ… Track running Codex processes from inside Aion
Runtime FSM βœ… Idle β†’ Launching β†’ Running β†’ Exited state transitions
Window management βœ… Focus, rename and terminate managed instances
Launch orchestration βœ… Launch profiles with isolated runtime configuration
Profile-specific launch environment βœ… Configure environment variables independently per launch
Per-profile proxy configuration βœ… Optional proxy configuration stored with each profile
Batch operations βœ… Launch or terminate multiple managed profiles
Reverse engineering reports βœ… Extensive forensic documentation included in the repository

πŸ§ͺ Experimental

Note

These capabilities are implemented for research purposes. They work as intended from Aion's perspective, but do not currently guarantee complete Codex Desktop isolation.

Feature Notes
CODEX_HOME isolation Configured independently for every profile
Electron user-data isolation Uses --user-data-dir
Authentication workflow Separate profile authentication experiments
Startup tracing Documents Codex Desktop startup sequence
Backend startup analysis Documents app-server initialization
Environment comparison Compare successful and failed launches
Filesystem tracing Compare runtime artifacts between launches
Process tree analysis Analyze parent-child relationships during startup

πŸ”¬ Reverse Engineering Toolkit

View full investigation topic list

The repository contains a large collection of investigation reports covering:

  • Startup pipeline reconstruction
  • Electron initialization
  • Backend launch sequence
  • Authentication flow
  • Environment propagation
  • Process creation
  • Filesystem analysis
  • Runtime artifact comparison
  • Launch timing
  • Failure analysis
  • Hypothesis testing

These documents are intended for developers interested in understanding Codex Desktop internals or continuing the investigation.


πŸ“Έ Screenshots

Dashboard

The main workspace for managing profiles, monitoring runtime state, launching Codex Desktop, and reviewing profile configuration.

Authentication

Profiles can initiate an independent authentication workflow. The current implementation investigates how Codex Desktop creates and stores authentication state for each launch configuration. Authentication behavior remains one of the primary research topics of this repository.


πŸ—οΈ Architecture

Aion separates four independent responsibilities: persistent profile storage, runtime state, operating system integration, and research instrumentation. Keeping these independent allows new experiments to be added without changing the core profile manager.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              React Β· Zustand Β· Tailwind CSS                 β”‚
β”‚                   Frontend Interface                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
                 Tauri IPC Commands
                       β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Rust Backend                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                              β”‚
β”‚   Profile Management    Runtime Management    Storage        β”‚
β”‚   Process Discovery     Windows Integration   Launch Orch.   β”‚
β”‚                                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚                                    β”‚
    Windows APIs                        Codex Desktop
           β”‚                                    β”‚
           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                  Research & Diagnostics

πŸ”© Backend Architecture

profile.rs β€” Domain Model

Owns the application's domain model.

  • Profile definitions and configuration storage
  • Runtime metadata and serialization
  • Profile state machine: Idle β†’ Launching β†’ Running β†’ Exited
  • Atomic configuration writes (temp file + replace)

Persistent data and runtime state are intentionally separated. Profile configuration exists on disk. Runtime information exists only in memory.


utils.rs β€” OS Boundary

Owns every interaction with Windows.

  • Windows registry discovery and executable validation
  • Codex process launching and runtime process inspection
  • Window management and filesystem helpers
  • Environment construction

Every interaction with Windows APIs is isolated inside this module.


commands.rs β€” IPC Boundary

Acts as the thin boundary between the frontend and backend.

Validate parameters β†’ Delegate work β†’ Convert errors to user messages

Business logic does not live here.


πŸ–₯️ Frontend Architecture

The frontend is intentionally lightweight. Its responsibilities are limited to:

  • Rendering UI and displaying runtime state
  • Dispatching IPC commands
  • Polling runtime information

No operating-system logic exists inside React components.

State Management β€” Zustand acts as the single source of truth, owning the profile collection, runtime information, active selections, loading states, and polling. UI components remain almost entirely presentation-only.

Runtime Model β€” Runtime state is intentionally ephemeral. No running-process information is persisted. Every application restart reconstructs runtime state by inspecting the OS rather than restoring previous memory, avoiding stale information after crashes.


πŸ’Ύ Storage Layout

Application configuration:

%APPDATA%\Aion
β”‚
β”œβ”€β”€ config
β”‚   β”œβ”€β”€ app.json
β”‚   β”œβ”€β”€ profiles
β”‚   └── runtime
β”‚
└── logs

Codex profile directories:

%USERPROFILE%\CodexProfiles
β”‚
β”œβ”€β”€ profile-1
β”œβ”€β”€ profile-2
β”œβ”€β”€ profile-3
└── ...

Each profile directory is intended to become a self-contained Codex environment. Whether every component of Codex Desktop respects this separation is one of the central questions investigated by this project.


πŸš€ Launch Strategy

Every profile launch attempts to isolate the runtime using the currently documented mechanisms.

Parameter Purpose
CODEX_HOME Backend state isolation
NODE_REPL_TRUSTED_CODE_PATHS Node environment isolation
--user-data-dir Chromium user data isolation

Caution

Current evidence indicates these configuration layers alone are not sufficient to guarantee complete isolation.


πŸ”¬ Research Methodology

One objective of Aion is reproducibility. Every conclusion is based on reproducible experiments rather than assumptions.

The investigation relied on:

Method Purpose
Controlled launch experiments Baseline isolation testing
Filesystem comparison Artifact delta analysis
Startup timing Race condition investigation
Process inspection Runtime state observation
Electron startup analysis Pre-backend initialization tracing
Backend artifact comparison State diff across launches
Environment tracing Variable propagation verification
Windows process monitoring API-level event capture

Whenever possible, competing hypotheses were tested directly and documented. Several popular assumptions were eliminated during this investigation.


πŸ“‹ Research Reports

View all research topics

The repository contains numerous forensic reports covering:

Topic Description
Authentication flow Credential creation and storage
Backend startup Process initialization sequence
Electron startup Pre-backend initialization
Startup pipeline End-to-end launch sequence
Environment propagation Variable inheritance mapping
Runtime artifacts Files created during launch
Filesystem differences Cross-launch artifact comparison
Process trees Parent-child relationships
Launch failures Failure classification and triggers
Root cause analysis Investigation synthesis

Negative results are intentionally preserved. Knowing what does not explain the observed behavior is often just as valuable as knowing what does.


⚠️ Current Limitations

Warning

Aion should be viewed as a research prototype rather than a production-ready profile isolation tool.

View all known limitations

Multi-account isolation Complete isolation between multiple OpenAI accounts has not been demonstrated. Although Aion configures every documented launch parameter currently known, Codex Desktop still exhibits startup behavior that is not yet fully understood.

Authentication Profile-specific authentication experiments are implemented. However, authentication behavior remains partially controlled by internal Codex Desktop startup logic that has not yet been completely reverse engineered.

Electron startup Investigation confirmed that Electron performs significant initialization before the backend process is created. Current evidence indicates this stage plays an important role in runtime behavior.

Backend initialization The Codex backend process is created only after several earlier startup stages complete. Some failed launches terminate before backend initialization occurs. The exact condition responsible for these failures remains unknown.

Internal behavior Several components of Codex Desktop appear to rely on undocumented internal behavior. Future versions may therefore change launch characteristics without notice.

Windows only Aion currently targets Windows exclusively. Support for Linux or macOS is outside the current scope.


πŸ’‘ What Has Been Learned

Even though the original objective has not yet been fully achieved, the project produced several useful findings.

Finding
How Codex Desktop launches its backend
How Electron initializes user data
How runtime artifacts are created
Where backend state is stored
How launch parameters propagate
Where documented isolation boundaries exist
Which commonly suggested approaches do not solve the problem

These findings significantly reduce the search space for future investigation.


πŸ”­ Future Work

Possible directions for future investigation:

  • Deeper Electron instrumentation
  • Backend process tracing
  • Startup event interception
  • Windows API monitoring
  • Comparison across Codex Desktop releases
  • Automated launch experiments
  • Improved diagnostic tooling

Contributions in these areas are particularly valuable.


βš™οΈ Requirements

Requirement Notes
Windows 10 / 11 Required
Rust (stable) MSVC toolchain
Node.js 20+ Required
npm Required
Microsoft Edge WebView2 Required by Tauri
OpenAI Codex Desktop Installed locally

πŸ› οΈ Building

# Clone and build
git clone https://github.com/<Ali-hey-0>/Aion.git
cd Aion

npm install
npm run tauri build

Development mode:

npm run tauri dev

πŸ‘©β€πŸ’» Development

The project is organized so experimental work can be added without affecting the core application.

Recommended workflow:

1. Verify launch behavior
2. Collect evidence
3. Compare successful and failed launches
4. Update documentation
5. Only then modify implementation

Conclusions should be based on reproducible experiments rather than assumptions.


🀝 Contributing

Contributions are welcome. The most valuable contributions are not necessarily new features, but new evidence.

Valuable pull requests include:

  • Reproducible experiments and startup traces
  • ProcMon captures and Electron analysis
  • Backend behavior analysis
  • Documentation improvements
  • Validation of existing hypotheses

Important

Please distinguish clearly between observations, experimental results, hypotheses, and conclusions. Doing so keeps the investigation scientifically reproducible.


❓ FAQ

Does Aion modify Codex Desktop?

No. The project intentionally avoids modifying or patching Codex Desktop.

Does Aion inject code?

No. No DLL injection, binary patching, or runtime modification is performed.

Does Aion guarantee isolated accounts?

No. That was the original objective. Current evidence indicates that additional undocumented behavior inside Codex Desktop affects profile isolation.

Why publish if the original goal wasn't fully achieved?

Because the investigation itself has value. The repository documents months of reverse engineering work, eliminates several incorrect assumptions, and provides a foundation for future research. Publishing both successful and unsuccessful experiments avoids duplicated effort and enables other developers to continue from a much more advanced starting point.

Can this project become fully functional in the future?

Possibly. The remaining obstacle appears to be understanding a small portion of Codex Desktop's startup behavior. If that behavior can be identified, the existing architecture should already be capable of supporting complete profile isolation.


πŸ“œ License

The license will be selected before the first stable public release.


πŸ™ Acknowledgements

This project would not exist without the work of Tauri, Rust, React, and Electron.

Special thanks to everyone who contributes evidence, experiments, and analysis that help improve our understanding of Codex Desktop's startup behavior.


Aion β€” Investigating the boundaries of Codex Desktop

About

Research platform for OpenAI Codex Desktop profile isolation

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages