Development Setup
TalkCody development environment setup and build guide.
Prerequisites
Required Software
Node.js and Bun
# Install Node.js 20+ (via nvm recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install 20
nvm use 20
# Install Bun
curl -fsSL https://bun.sh/install | bashRust
# Install Rust via rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Verify installation
rustc --version
cargo --versionGit
# macOS (via Homebrew)
brew install git
# Windows (via Chocolatey)
choco install git
# Linux (Ubuntu/Debian)
sudo apt install gitPlatform-Specific Requirements
macOS:
# Install Xcode Command Line Tools
xcode-select --install
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Windows:
# Install Visual Studio Build Tools
# Download from: https://visualstudio.microsoft.com/downloads/
# Select: Desktop development with C++
# Install WebView2 (usually pre-installed on Windows 11)
# Download if needed: https://developer.microsoft.com/microsoft-edge/webview2/Linux:
# Ubuntu/Debian
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
# Fedora
sudo dnf install webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
gtk3-devel \
libappindicator-gtk3-devel \
librsvg2-devel
# Arch Linux
sudo pacman -S webkit2gtk \
base-devel \
curl \
wget \
file \
openssl \
gtk3 \
libappindicator-gtk3 \
librsvgGetting Started
Clone the Repository
# Clone via HTTPS
git clone https://github.com/talkcody/talkcody.git
# Navigate to directory
cd talkcodyInstall Dependencies
# Install frontend dependencies
bun install
# Install Rust dependencies (automatic during first build)
cd src-tauri
cargo fetch
cd ..First-time setup may take 5-10 minutes as dependencies are downloaded and compiled.
Run Development Server
# Start Tauri development server
bun run tauri devThis will:
- Start the Vite dev server
- Compile Rust code
- Launch the application window
- Enable hot-reload for frontend changes
Development Workflow
Project Structure
talkcody/
├── src/ # React frontend source
│ ├── components/ # UI components
│ ├── hooks/ # React hooks
│ ├── lib/ # Utilities
│ ├── pages/ # Page components
│ ├── services/ # Business logic
│ ├── styles/ # CSS files
│ └── types/ # TypeScript types
│
├── src-tauri/ # Rust backend
│ ├── src/ # Rust source files
│ │ ├── main.rs # Entry point
│ │ ├── commands/ # Tauri commands
│ │ └── lib.rs # Library code
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
│
├── public/ # Static assets
├── docs/ # Documentation site
├── package.json # Node dependencies
├── tsconfig.json # TypeScript config
├── vite.config.ts # Vite configuration
└── README.mdCommon Commands
Development:
# Start dev server with hot reload
bun run tauri dev
# Start frontend only (for UI work)
bun run dev
# Run TypeScript type checking
bun run tsc
# Run linter
bun run lint
# Run frontend tests
bun run test
# Run backend tests
cd src-tauri
cargo testBuilding:
# Build for production
bun run tauri build
# Build frontend only
bun run buildContributing
Getting Started with Contributions
- Fork the repository on GitHub
- Clone your fork locally
- Create a branch for your feature/fix
- Make your changes
- Test thoroughly
- Submit a pull request
Coding Standards
Please refer to our AGENTS.md for coding conventions and best practices.
Next Steps
- Architecture - Understand the codebase
- GitHub Issues - Report bugs or request features