mirror of
https://github.com/openai/codex.git
synced 2026-05-03 04:42:20 +03:00
- Updates the launch screen to: ``` >_ You are using OpenAI Codex in ~/code/codex/codex-rs Try one of the following commands to get started: 1. /init - Create an AGENTS.md file with instructions for Codex 2. /status - Show current session configuration and token usage 3. /compact - Compact the chat history 4. /new - Start a new chat ``` - These aren't the perfect commands, but as more land soon we can update. - We should also add logic later to make /init only show when there's no existing AGENTS.md. - Majorly need to iterate on copy. <img width="905" height="769" alt="image" src="https://github.com/user-attachments/assets/5912939e-fb0e-4e76-94ff-785261e2d6ee" />
51 lines
1.7 KiB
Rust
51 lines
1.7 KiB
Rust
use strum::IntoEnumIterator;
|
|
use strum_macros::AsRefStr;
|
|
use strum_macros::EnumIter;
|
|
use strum_macros::EnumString;
|
|
use strum_macros::IntoStaticStr;
|
|
|
|
/// Commands that can be invoked by starting a message with a leading slash.
|
|
#[derive(
|
|
Debug, Clone, Copy, PartialEq, Eq, Hash, EnumString, EnumIter, AsRefStr, IntoStaticStr,
|
|
)]
|
|
#[strum(serialize_all = "kebab-case")]
|
|
pub enum SlashCommand {
|
|
// DO NOT ALPHA-SORT! Enum order is presentation order in the popup, so
|
|
// more frequently used commands should be listed first.
|
|
New,
|
|
Init,
|
|
Compact,
|
|
Diff,
|
|
Status,
|
|
Quit,
|
|
#[cfg(debug_assertions)]
|
|
TestApproval,
|
|
}
|
|
|
|
impl SlashCommand {
|
|
/// User-visible description shown in the popup.
|
|
pub fn description(self) -> &'static str {
|
|
match self {
|
|
SlashCommand::New => "Start a new chat",
|
|
SlashCommand::Init => "Create an AGENTS.md file with instructions for Codex",
|
|
SlashCommand::Compact => "Compact the chat history",
|
|
SlashCommand::Quit => "Exit the application",
|
|
SlashCommand::Diff => "Show git diff (including untracked files)",
|
|
SlashCommand::Status => "Show current session configuration and token usage",
|
|
#[cfg(debug_assertions)]
|
|
SlashCommand::TestApproval => "Test approval request",
|
|
}
|
|
}
|
|
|
|
/// Command string without the leading '/'. Provided for compatibility with
|
|
/// existing code that expects a method named `command()`.
|
|
pub fn command(self) -> &'static str {
|
|
self.into()
|
|
}
|
|
}
|
|
|
|
/// Return all built-in commands in a Vec paired with their command string.
|
|
pub fn built_in_slash_commands() -> Vec<(&'static str, SlashCommand)> {
|
|
SlashCommand::iter().map(|c| (c.command(), c)).collect()
|
|
}
|