Skip to content

milisp/codexia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Downloads Stars Forks Issues Feature Requests PRs Welcome License: MIT CI

๐Ÿš€ The missing GUI/IDE for the Codex CLI โ€” fork chat, live streaming responses, file-tree integration, notepad, and git diff support Cross-platform desktop app built with Tauri v2 + React + TypeScript.

Tip

โญ Star the repo and follow milisp on X and github for more.

demo

โ–ถ๏ธ Watch the automation video on Twitter

Disclaimer

Codexia is an independent open-source project and is not built by OpenAI or any company.

News

  • [2025-09-05] fork chat + edit chat
  • [2025-09-03] show the plan message
  • [2025-08-29] support image input, codexia can read image now

โœจ Features

๐Ÿ”„ Multi-Session Support

  • Run multiple independent chat sessions simultaneously
  • Each session maintains its own configuration and context
  • Switch between sessions without interrupting ongoing conversations
  • Persistent session storage with automatic restoration on app restart

๐Ÿ’ฌ Real-Time Streaming

  • Live streaming responses for immediate feedback
  • Character-by-character message updates as AI generates responses
  • No more waiting for complete responses - see results as they appear
  • Visual indicators for active generation and thinking states

Build-in Mutil file format support

  • pdf - select text from pdf
  • csv, xlsx - preview and select text

โš™๏ธ Flexible Configuration

  • Support for multiple AI providers (OpenAI, OSS via Ollama, Custom)
  • Configurable models per session (GPT, Llama, etc.)
  • Adjustable sandbox policies (read-only, workspace-write, full-access)
  • Customizable approval policies for command execution
  • Working directory selection for each session

๐ŸŽฏ Professional UX

  • Clean, responsive interface built with shadcn/ui components
  • Configuration panel
  • Notepad-chat integration for seamless note-taking and send back during conversations
  • Enhanced markdown rendering with syntax highlighting for code blocks
  • Todo list Plan Display
  • Screenshot as image input
  • fork chat
  • Persistent UI state and preferences
  • WebPreview Click WebPreview icon Auto detect web port to show WebPreview, eg. Next.js project will show WebPreview http://localhost:3000
  • Theme & Accent Selection

๐Ÿ›ก๏ธ Security & Control

  • Sandbox execution modes for safe code running
  • Approval workflows for sensitive operations
  • Configurable command execution policies
  • Isolated processes per session for security

๐Ÿš€ Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/milisp/codexia
    cd codexia
  2. Install dependencies:

    bun install
  3. Run the development server:

    bun tauri dev

Building for Production

bun tauri build

๐ŸŽฎ Usage

Creating Sessions

  • Click the "+" button in the session sidebar to create a new chat session
  • Each session starts with an independent Codex process
  • Configure working directory, model, and policies per session

Managing Conversations

  • Switch between sessions by clicking on them in the sidebar
  • Sessions continue running in the background when not active
  • Close sessions using the "ร—" button (this terminates the Codex process)

Configuration

  • Click the Settings icon to open the configuration dialog
  • Changes apply to the currently active session
  • Configurations are automatically saved and restored

Theme & Accent Selection

  • Toggle light/dark with the sun/moon button in the header.
  • Pick an accent color from the palette button next to the theme toggle.
  • Defaults: dark mode with a pink accent. Choices persist via Zustand.

Monitoring

  • Use the Debug panel (bottom-right) to monitor running sessions
  • View backend process status and frontend session states
  • Sync session states between frontend and backend

๐Ÿ—๏ธ Architecture

Frontend (React + TypeScript)

  • Zustand for state management with persistence
  • shadcn/ui for UI components
  • Tauri for native desktop integration
  • Real-time event handling for streaming responses

Backend (Rust + Tauri)

  • Multi-process management for concurrent Codex sessions
  • JSON-RPC protocol communication with Codex CLI
  • Async event streaming to frontend
  • Resource cleanup and process lifecycle management

Session Management

  • Independent processes per chat session
  • Configurable startup parameters per session
  • Event isolation between sessions
  • Graceful cleanup on session termination

๐Ÿ“‹ Supported Codex Features

  • โœ… Interactive chat with AI assistants
  • โœ… Code generation and editing in various languages
  • โœ… File operations with sandbox controls
  • โœ… Command execution with approval workflows
  • โœ… Multiple AI providers (OpenAI, OSS models via Ollama)
  • โœ… Working directory context for project-aware assistance
  • โœ… Streaming responses for real-time interaction - by config show_raw_agent_reasoning=true

๐Ÿ› ๏ธ Development

Project Structure

codexia/
โ”œโ”€โ”€ src/                    # React frontend source
โ”‚   โ”œโ”€โ”€ components/         # UI components
โ”‚   โ”œโ”€โ”€ hooks/              # Custom React hooks
โ”‚   โ”œโ”€โ”€ store/              # Zustand state management
โ”‚   โ”œโ”€โ”€ services/           # Business logic services
โ”‚   โ””โ”€โ”€ types/              # TypeScript type definitions
โ”œโ”€โ”€ src-tauri/              # Rust backend source
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ lib.rs          # Main Tauri application
โ”‚   โ”‚   โ””โ”€โ”€ codex_client.rs # Codex process management
โ”‚   โ””โ”€โ”€ Cargo.toml          # Rust dependencies
โ”œโ”€โ”€ public/                 # Static assets
โ””โ”€โ”€ package.json           # Node.js dependencies

Key Technologies

  • Frontend: React 19, TypeScript, Zustand, shadcn/ui, Vite
  • Backend: Rust, Tauri v2, Tokio async runtime
  • Process Communication: JSON-RPC, stdin/stdout streams
  • State Management: Zustand with persistence middleware
  • UI Framework: shadcn/ui built on Radix UI and Tailwind CSS

Development Commands

# Start development server
bun tauri dev

# Build frontend only
bun run build

# Check Rust code
cd src-tauri && cargo check

# Format code
cd src-tauri && cargo fmt --all

# Copy the pre-commit hook to prevent frontend issues.
cp docs/pre-commit .git/hooks/pre-commit

โ“ Troubleshooting / FAQ

1. App fails to start after dependency changes

  • Fix: Delete node_modules and bun.lock and reinstall.
    rm -rf node_modules bun.lock
    bun install

2. Can I use ChatGPT Plus or Pro tier account instead of API

  • Yes, You can use codex login ChatGPT first
codex # then choose ChatGPT

learn tauri v2

https://v2.tauri.app/start/

https://tauri.app/llms.txt

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  • test before push
  • test command bun run build and cargo check at src-tauri folder
  1. Open a Pull Request

๐Ÿ’– Contributors

Thanks to all our wonderful contributors!

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Plux one click @files from FileTree & notepad
  • Claude code Co-Authored-By Claude code
  • codex for the Codex CLI
  • Tauri for the excellent desktop app framework
  • shadcn/ui for the beautiful UI components
  • ChatGPT Some code suggest by ChatGPT
  • The open source community for the amazing tools and libraries

Built with โค๏ธ using Tauri, React, and Rust