Skip to content

Allow custom agent profiles to be selected as persistent top-level chats #34745

Description

@HaArLiNsH

What variant of Codex are you using?

App and VS Code Extension

What feature would you like to see?

Feature request

Allow users to select a custom agent configuration when creating a new top-level Codex conversation.

For example:

  • New chat → Product Planner
  • New chat → Software Architect
  • New chat → Implementation Agent
  • New chat → Marketing Agent

The selected agent should become the persistent root agent for that conversation—not a temporary subagent spawned by a generic main agent.

Current limitation

Codex custom agents can currently be configured as subagents, but users cannot select one of those configurations as the main agent of a new independent conversation.

This creates an important distinction:

  • A subagent is a delegated worker with a separate context.
  • Its output is returned or summarized to the parent agent.
  • The user continues interacting primarily with the generic parent agent.
  • It is therefore not equivalent to a persistent specialized-agent conversation.

Skills can provide specialized instructions, but they do not create a fully independent agent configuration with its own model, tools, permissions, integrations, and defaults.

CLI profiles can provide different configurations, but they are not conveniently selectable when starting conversations in the Codex Windows app or VS Code extension.

Requested behavior

When starting a new conversation, Codex should provide an agent selector containing the available personal and project-level custom agents.

Conceptually:

New conversation

Agent:
○ Default Codex
○ Product Planner
○ Software Architect
○ Implementation Agent
○ Marketing Agent

After selecting an agent:

  • The custom agent becomes the root agent of the conversation.
  • The conversation remains directly attached to that agent when resumed.
  • Its complete conversation continuity is preserved over weeks or months.
  • Its own instructions and behavioral boundaries are applied.
  • Its configured model and reasoning effort are applied.
  • Its tools, skills, integrations, sandbox, and permission defaults are applied.
  • It may spawn subagents when its configuration allows this, but it is not itself a subagent.

This should ideally be supported in both:

  • The Codex Windows app
  • The Codex VS Code extension

Why this matters

Some specialized agents are not temporary workers. They represent persistent professional roles that may collaborate with the user throughout the lifetime of a project or company.

A generic setup might include:

  • A planning agent that preserves long-term product decisions and priorities.
  • Technical agents responsible for shorter, focused engineering tasks.
  • A marketing agent that maintains ongoing context about positioning, audiences, brand voice, communication strategy, and campaigns.

These agents may require fundamentally different configurations.

For example, a technical implementation agent might need terminal and source-code access, while a marketing agent might need web research, document tools, and communication integrations. They should not automatically share the same permissions, tools, model settings, or instructions.

Each role also needs its own persistent conversation history. Forcing all roles to operate as temporary subagents of one generic main agent weakens their continuity and makes the main conversation an unnecessary intermediary.

Users should be able to create independent top-level conversations with different custom agents, just as they create separate conversations for different areas of work.

Why subagents do not solve this

Subagents are valuable for bounded delegated tasks, but they do not replace persistent root-agent conversations.

A long-running specialized role may need to:

  • Maintain decisions and context across many sessions.
  • Continue the same conversation for weeks or months.
  • Interact directly with the user throughout that period.
  • Own its conversation rather than report through a parent.
  • Use a configuration that differs substantially from other roles.

Requiring a generic parent agent to repeatedly spawn or route messages to the same subagent introduces unnecessary indirection and creates a risk of continuity loss.

Why skills alone do not solve this

A role skill can provide instructions, but it does not appear to offer the same isolation and configuration as an independently selectable agent.

Different roles may need different:

  • Models and reasoning levels
  • Permission policies
  • Filesystem access
  • Network access
  • MCP servers and integrations
  • Tools and skills
  • Developer instructions
  • Subagent permissions

Activating a skill inside the same generic main agent is therefore not equivalent to choosing a distinct agent configuration for the conversation.

Possible configuration model

Existing custom-agent definitions could potentially be made selectable as root agents, or Codex could introduce a dedicated configuration type for top-level agents.

For example:

.codex/
└── agents/
    ├── product-planner.toml
    ├── software-architect.toml
    ├── implementation-agent.toml
    └── marketing-agent.toml

When creating a conversation for that project, Codex would expose those configurations in the agent selector.

Personal agents could similarly be loaded from the user’s Codex configuration directory.

Suggested acceptance criteria

  • Users can define multiple custom agent configurations.
  • A custom agent can be selected when creating a new top-level conversation.
  • The selected agent remains the root agent for the lifetime of that conversation.
  • Conversations can be closed and resumed without reverting to the default agent.
  • Each agent can define its own instructions, model, reasoning effort, tools, skills, integrations, and permission defaults.
  • Project-level and personal custom agents are supported.
  • The selected agent is visibly identified in the conversation interface.
  • Root custom agents can optionally spawn subagents without becoming subagents themselves.
  • The capability is available in the Codex Windows app and VS Code extension.

Summary

Codex currently supports specialization through skills, profiles, and subagents, but it lacks a direct way to create persistent top-level conversations using different custom-agent identities.

Adding a custom-agent selector for new conversations would make Codex much more suitable for long-running, multi-role professional workflows while preserving clear separation of context, permissions, tools, and responsibilities.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appconfigIssues involving config.toml, config keys, config merging, or config updatesenhancementNew feature or requestextensionIssues related to the VS Code extensionsessionIssues involving session (thread) management, resuming, forking, naming, archivingsubagentIssues involving subagents or multi-agent features

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions