Getting Started

Xedant Code runs on your own computer or server, giving you complete control over your development environment. Choose the installation method that works best for you:

  • Docker Installation (Recommended) — Run Xedant Code in a Docker container on Linux, macOS, or Windows. Provides complete isolation and a full set of tools used by Claude Code out of the box. View Docker Installation Guide
  • Windows Docker Desktop — Run Xedant Code using Docker Desktop on Windows with WSL 2 backend. Combines graphical Docker management with full container isolation. View Windows Docker Desktop Guide
  • Mac Docker Desktop — Run Xedant Code using Docker Desktop on macOS (Intel and Apple Silicon). Easy graphical Docker management with full container isolation. View Mac Docker Desktop Guide
  • WSL Setup — Run Xedant Code in Docker on Windows using WSL (Windows Subsystem for Linux) without Docker Desktop. Gives you full Docker isolation with native Linux performance on Windows 10 or 11. View WSL Setup Guide
  • Windows Installation — Native Windows 10/11 app. Runs as a command-line tool with web UI configurable via environment variables or command-line params. View Windows Installation Guide

Why Docker is recommended — even on Windows: Claude Code models heavily rely on Linux-native tools and Python, which are included out of the box in a Docker container but require separate installation on Windows. Models also frequently struggle with Windows-style paths and tools. Docker provides full isolation — models cannot break your host environment, and if something goes wrong inside the container, you can recreate it in seconds. Finally, Docker lets you set up a task-specific environment with only the files the model needs, reducing confusion from unrelated files in your workspace.

All installation methods include everything you need to run Xedant Code. After installing, you’ll need to configure an environment with your AI provider’s API key before you can start chatting — see Setting Up Your First Environment below.


Setting Up Credentials

Xedant Code uses login credentials to protect access. If the XEDANT_CODE_LOGIN and XEDANT_CODE_PASSWORD environment variables are not set when the application starts, it generates temporary credentials automatically — the login is code and a random password is printed to the console output. These temporary credentials are valid until the application restarts. See the Environments page for the full list of app-level environment variables.

Windows Installer

The Windows installer handles everything for you. During installation, you choose your login and password, and they are stored as environment variables on your system. After installation, Xedant Code launches automatically in your browser with a pre-configured demo project. If you skip the credentials step during installation, the app will generate temporary credentials on startup and print them to its console window.

Docker

For Docker installations, set your credentials using the XEDANT_CODE_LOGIN and XEDANT_CODE_PASSWORD environment variables in your docker-compose file or .env file. The password is stored as a SHA256 hash. See the Docker Installation Guide for details. If you omit these variables, the app will generate temporary credentials and print them to the container log — use docker logs to view them.

Manual Installation

For manual installations, you can either set the XEDANT_CODE_LOGIN and XEDANT_CODE_PASSWORD environment variables before launching, or simply start the application and use the auto-generated temporary credentials printed to the console. The password must be a SHA256 hash when set via environment variable. Use the SHA256 generator tool built into the login page to generate the hash, or compute it yourself.

When using temporary credentials, the login page shows a notice explaining that credentials are auto-generated and temporary. To make them permanent, configure the environment variables and restart the application.

Once credentials are configured, open Xedant Code in your browser, enter your login and password, and click Sign In. You’ll receive a JWT token that keeps you logged in for 90 days. The browser opens to the main chat list.

By default, the JWT signing key is auto-generated and stored in a temporary folder on your system. For extra security, you can provide your own key via the JWT_SECRET_KEY environment variable (minimum 32 characters). This ensures the key persists across restarts and is not stored in a shared temp directory. See the Environments page for the full list of available environment variables.


The Main Interface

After logging in, you land on the chat list — your home screen for managing all conversations. Here’s what you’ll see:

  • Chat List — The central area shows all your chat sessions. Each chat displays its title and when it was last updated. When no chats exist yet, a prominent New Chat button invites you to start your first conversation.
  • New Chat — Click the New Chat button to create a fresh chat session. Each chat is independent — sessions don’t share context, so you can work on multiple topics without confusion.
  • Real-Time Updates — The chat list updates in real-time via SignalR. New chats appear automatically, and active chats show live progress.

The chat list is browser-cached for performance, so it loads instantly on repeat visits. If the list ever gets out of sync with your database (for example, after deleting chats from another browser or directly from the database), click the refresh button next to the chat search input to reload it.

Click any chat in the list to open it. The chat view is where you interact with the AI — see the Chat Features documentation for a detailed walkthrough of the chat interface, message types, and controls.


The Demo Project (Windows)

The Windows installer includes a multi-framework demo project that showcases Xedant Code’s capabilities — from development and building to linting, deploying, and auto-fixing bugs. When you launch the installed app directly, you’ll see this demo project.

For Docker or manual installations, you specify your own project path via the XEDANT_CODE_PROJECT_PATH environment variable. Xedant Code works with any codebase — point it at your project directory and start chatting. See the Environments page for all available environment variables.

The demo project also comes with demo skills — pre-built skills that provide project-specific guidance and planning capabilities. These are useful on their own and also serve as templates for creating your own custom skills. See the Skills documentation for details on creating and managing skills.

Xedant Code runs on a per-project basis: one instance per project. Each instance is fully isolated, so you can run multiple instances simultaneously on different ports for different projects.


Setting Up Your First Environment

Before you can chat, you need to create an environment — a named set of configuration variables that tells Xedant Code which AI model to use and how to connect to it. At minimum, this means providing your AI provider’s API key.

Quickest way: When no environments exist yet, a “create environment/model” link appears directly in the message input area. Click it to open the environment creation dialog right where you need it — no need to navigate to the Environments page first.

To set up your first environment:

  • Click New Environment — either from the Environments page in the main menu, or via the “create environment/model” link in the message input area if no environments exist yet
  • Choose your AI provider from the built-in list — Anthropic, z.ai, OpenRouter, xAI Grok, MiniMax, Kimi, or Custom
  • Select a model variant (for example, Claude Sonnet 4.6 or Claude Opus 4.7 for Anthropic)
  • Enter your API key when prompted — all other variables (model name, base URL, pricing) are pre-configured automatically

If your provider or model isn’t listed, you can use any existing provider as a template and then edit the variables after creation, or edit the .xedant/providers.yml file in your project to add it. You can also contact us to have it added to the built-in list.

Once your environment is created, go to the chat input and use the environment selector (a dropdown near the input field) to activate it. The selector only appears after you’ve created at least one environment.

You can create multiple environments for different providers or model configurations and switch between them at any time from the chat input. For full details, see the Environments documentation.


Sending Your First Message

Starting a conversation is simple:

  • Create a Chat — From the chat list, click New Chat to create a new conversation.
  • Type Your Message — In the chat input field at the bottom of the screen, type your question, request, or task description. The field supports multi-line messages.
  • Send — Press Enter or click the Send button. Hold Shift+Enter to add a line break without sending.
  • Watch the Response — The AI response appears in the chat with real-time streaming. If the AI reads files or performs tasks, you’ll see tool use messages and status updates inline.

Tip: Be specific with your questions. Instead of “Fix the bug,” try “The login form isn’t submitting when I click the button. Can you help me find the problem?” The more context you provide, the better the AI can help.

While the AI is working, the page header shows live stats: elapsed time, processing speed (tokens/second), and cost so far. A stop button appears in the header during processing — click it to cancel the current request at any time.

Click any message to see its details — such as which files were read or edited, with full diffs for edits. Tool messages (like file reads, edits, or todo updates) expand inline to show their content. Hover over a message to see per-message stats (processing time, cache/input/output tokens, cost) and action buttons for copying the message or continuing from that point in the conversation — useful for resuming a stopped chat from a specific message.

For a detailed walkthrough of all chat features — message types, skills selector, environment switching, message queuing, and more — see the Chat Features documentation.


Working with Multiple Chats

Each chat session is an independent conversation with its own context. You might have one session for debugging a specific feature, another for planning a new project, and another for learning how a particular part of your code works.

  • Create Chats — Click New Chat on the chat list to start a fresh session. When you send your first message, Xedant Code generates a descriptive title based on your question.
  • Switch Between Chats — Return to the chat list to switch between sessions. Each chat remembers its entire conversation, so you can pick up exactly where you left off.

Best Practice: Create a new chat for each distinct task or topic. This keeps conversations focused and makes it easier to find information later. For example, use one session for “Refactoring the user authentication system” and another for “Adding comments to the payment processing code.”


What’s Next?

Now that you’re familiar with the basics, dive deeper into Xedant Code’s features:

  • Chat Features — Learn about message types, skills selector, environment switching, message queuing, and the floating todo panel. Read about Chat Features
  • Environments — Configure multiple AI providers, manage API keys, and switch between model setups. Read about Environments
  • Files & Projects — Explore how Xedant Code reads, edits, and manages your project files. Read about Files & Projects
  • Build & Deploy — Understand the build panel, deploy controls, and auto-rebuild features. Read about Build & Deploy
  • Skills — Learn how to use, create, and manage skills that extend the AI’s capabilities. Read about Skills
  • Settings — Configure appearance, API settings, sounds, speech, hooks, and MCP servers. Read about Settings

Previous: Documentation | Next: Chat Features