Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
fc619be
worked locally using azure
buddhathemanoj Jan 23, 2026
1a8203d
a
buddhathemanoj Jan 23, 2026
e55fc7b
Rebrand from 21st dev/1code to kCode
buddhathemanoj Jan 23, 2026
2052d96
Fix Windows build: add Python 3.11 and setuptools for node-gyp
buddhathemanoj Jan 23, 2026
469ca0d
Add Windows icon (icon.ico) for electron-builder
buddhathemanoj Jan 23, 2026
6a0f102
Fix Windows startup: Add Azure credentials onboarding flow
buddhathemanoj Jan 23, 2026
7430841
Fix builds: Add Python 3.11 and bake in Foundry credentials
buddhathemanoj Jan 23, 2026
5355a1b
Fix GitHub Actions build: inline Foundry env vars at build time
buddhathemanoj Jan 23, 2026
ced5e22
Fix runtime errors and improve Foundry credential loading
buddhathemanoj Jan 23, 2026
8f60a28
Add missing artifact sidebar component and related files
buddhathemanoj Jan 23, 2026
8bbb10a
Fix CI: Add Claude binary download, disable macOS build
buddhathemanoj Jan 23, 2026
21a8bac
Add local macOS build workflow and update docs
buddhathemanoj Jan 23, 2026
b30609b
sidebar
buddhathemanoj Jan 24, 2026
95d3987
Add Clerk authentication integration
buddhathemanoj Jan 24, 2026
e71f567
Windows Build Fixes (#27) - cherry-picked
buddhathemanoj Feb 2, 2026
1e7eddd
Fix Windows compatibility for git worktree operations (#72) - cherry-…
buddhathemanoj Feb 2, 2026
fac5deb
Only show traffic light spacer on macOS (#73) - cherry-picked
buddhathemanoj Feb 2, 2026
7d946cc
Improve terminal copy/paste support on Windows (#91) - cherry-picked
buddhathemanoj Feb 2, 2026
13c869f
Fixed claude abort issue when switching out of Plan Mode (#68) - cher…
buddhathemanoj Feb 2, 2026
f9a7653
Fix Claude SDK spawn errors and handle expired sessions (#70) - cherr…
buddhathemanoj Feb 2, 2026
77f16aa
Fix: update Claude binary version fetch to use GCS bucket endpoint (#…
buddhathemanoj Feb 2, 2026
6edc64d
fix(build): pin source-map to 0.7.4 to fix electron-builder packaging…
buddhathemanoj Feb 2, 2026
1d6e94c
Rename app from kcode to Anchor
buddhathemanoj Feb 2, 2026
0200d1b
Enable macOS build in GitHub workflow
buddhathemanoj Feb 2, 2026
02c21b6
a
buddhathemanoj Feb 2, 2026
5670056
Hardcode Azure Foundry credentials in build config
buddhathemanoj Feb 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,24 @@ VITE_POSTHOG_HOST=https://us.i.posthog.com
# Set this in hosted builds to use a private feedback channel
# VITE_FEEDBACK_URL=https://discord.gg/your-private-invite

# API URL (optional - defaults to https://21st.dev)
# Only change this if you're running the web app locally
# API URL (optional - no longer used for auth)
# MAIN_VITE_API_URL=http://localhost:3000

# =============================================================================
# Microsoft Foundry Claude Configuration (REQUIRED for Claude functionality)
# =============================================================================
# Get these from your Azure AI Foundry deployment
# See: https://code.claude.com/docs/en/microsoft-foundry

# Enable Microsoft Foundry integration
MAIN_VITE_CLAUDE_CODE_USE_FOUNDRY=1

# Your Azure resource name (from the Azure portal)
# Example: if your endpoint is https://my-resource.services.ai.azure.com, use "my-resource"
MAIN_VITE_ANTHROPIC_FOUNDRY_RESOURCE=your-resource-name

# Your Azure API key
MAIN_VITE_ANTHROPIC_FOUNDRY_API_KEY=your-api-key-here

# Model deployment names (must match your Azure deployment names)
MAIN_VITE_ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-5
194 changes: 194 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
name: Build

on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
platform:
description: 'Platform to build'
required: true
default: 'all'
type: choice
options:
- all
- mac
- windows
- linux

jobs:
build-mac:
if: ${{ github.event.inputs.platform == 'all' || github.event.inputs.platform == 'mac' || github.event_name == 'push' }}
runs-on: macos-latest
steps:
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install setuptools (for distutils)
run: pip install setuptools

- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- name: Install dependencies
run: bun install

- name: Download Claude Code binaries
run: bun run claude:download:all

- name: Build
run: bun run build
env:
MAIN_VITE_CLAUDE_CODE_USE_FOUNDRY: ${{ secrets.MAIN_VITE_CLAUDE_CODE_USE_FOUNDRY }}
MAIN_VITE_ANTHROPIC_FOUNDRY_RESOURCE: ${{ secrets.MAIN_VITE_ANTHROPIC_FOUNDRY_RESOURCE }}
MAIN_VITE_ANTHROPIC_FOUNDRY_API_KEY: ${{ secrets.MAIN_VITE_ANTHROPIC_FOUNDRY_API_KEY }}
MAIN_VITE_ANTHROPIC_DEFAULT_OPUS_MODEL: ${{ secrets.MAIN_VITE_ANTHROPIC_DEFAULT_OPUS_MODEL }}

- name: Package macOS
run: bun run package:mac
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_IDENTITY: ${{ secrets.APPLE_IDENTITY }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}

- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: anchor-mac
path: |
release/*.dmg
release/*-mac.zip
retention-days: 30

build-windows:
if: ${{ github.event.inputs.platform == 'all' || github.event.inputs.platform == 'windows' || github.event_name == 'push' }}
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install setuptools (for distutils)
run: pip install setuptools

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- name: Install dependencies
run: bun install

- name: Download Claude Code binaries
run: bun run claude:download:all

- name: Build
run: bun run build
env:
MAIN_VITE_CLAUDE_CODE_USE_FOUNDRY: ${{ secrets.MAIN_VITE_CLAUDE_CODE_USE_FOUNDRY }}
MAIN_VITE_ANTHROPIC_FOUNDRY_RESOURCE: ${{ secrets.MAIN_VITE_ANTHROPIC_FOUNDRY_RESOURCE }}
MAIN_VITE_ANTHROPIC_FOUNDRY_API_KEY: ${{ secrets.MAIN_VITE_ANTHROPIC_FOUNDRY_API_KEY }}
MAIN_VITE_ANTHROPIC_DEFAULT_OPUS_MODEL: ${{ secrets.MAIN_VITE_ANTHROPIC_DEFAULT_OPUS_MODEL }}

- name: Package Windows
run: bun run package:win
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: anchor-windows
path: |
release/*.exe
retention-days: 30

build-linux:
if: ${{ github.event.inputs.platform == 'all' || github.event.inputs.platform == 'linux' || github.event_name == 'push' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install setuptools (for distutils)
run: pip install setuptools

- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- name: Install dependencies
run: bun install

- name: Download Claude Code binaries
run: bun run claude:download:all

- name: Build
run: bun run build
env:
MAIN_VITE_CLAUDE_CODE_USE_FOUNDRY: ${{ secrets.MAIN_VITE_CLAUDE_CODE_USE_FOUNDRY }}
MAIN_VITE_ANTHROPIC_FOUNDRY_RESOURCE: ${{ secrets.MAIN_VITE_ANTHROPIC_FOUNDRY_RESOURCE }}
MAIN_VITE_ANTHROPIC_FOUNDRY_API_KEY: ${{ secrets.MAIN_VITE_ANTHROPIC_FOUNDRY_API_KEY }}
MAIN_VITE_ANTHROPIC_DEFAULT_OPUS_MODEL: ${{ secrets.MAIN_VITE_ANTHROPIC_DEFAULT_OPUS_MODEL }}

- name: Package Linux
run: bun run package:linux
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: anchor-linux
path: |
release/*.AppImage
release/*.deb
retention-days: 30

release:
needs: [build-mac, build-windows, build-linux]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts

- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
artifacts/anchor-mac/*
artifacts/anchor-windows/*
artifacts/anchor-linux/*
draft: true
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading