Skip to content

Commit fa8adcd

Browse files
thegreatalxxclaude
andcommitted
feat: v3.2.0 — badges, install.sh, /ping all, demo tape
- README: npm/vscode/stars/license badges, curl install one-liner, VS Code link - install.sh: color-formatted installer with Node version check - /ping all: ping all configured providers in parallel, show latency table - Setup.tsx: fix version string to v3.1.0 - demo.tape: VHS tape for generating terminal demo GIF Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent b35dcd4 commit fa8adcd

39 files changed

Lines changed: 2446 additions & 387 deletions

README.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33
**Local-first, open-source AI coding assistant for your terminal.**
44
Supports Ollama (free, fully local), Claude, OpenAI, and Groq — with a rich TUI inspired by Claude Code.
55

6+
[![npm version](https://img.shields.io/npm/v/@localcode/cli.svg?style=flat-square)](https://www.npmjs.com/package/@localcode/cli)
7+
[![npm downloads](https://img.shields.io/npm/dm/@localcode/cli.svg?style=flat-square)](https://www.npmjs.com/package/@localcode/cli)
8+
[![VS Code Marketplace](https://img.shields.io/visual-studio-marketplace/v/LocalCodeByTheAlxLabs.localcode.svg?style=flat-square&label=VS%20Code)](https://marketplace.visualstudio.com/items?itemName=LocalCodeByTheAlxLabs.localcode)
9+
[![GitHub stars](https://img.shields.io/github/stars/thealxlabs/localcode.svg?style=flat-square)](https://github.com/thealxlabs/localcode/stargazers)
10+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE)
11+
612
```
7-
/\_/\ LocalCode v3.0.0 · open source
13+
/\_/\ LocalCode v3.1.0 · open source
814
( ·.· ) provider Ollama qwen2.5-coder:7b
915
> ♥ < cwd ~/my-project
1016
tokens 0 ░░░░░░░░░░ 0%
@@ -14,19 +20,25 @@ Supports Ollama (free, fully local), Claude, OpenAI, and Groq — with a rich TU
1420

1521
## Install
1622

23+
**One-liner:**
24+
```bash
25+
curl -fsSL https://raw.githubusercontent.com/thealxlabs/localcode/main/install.sh | sh
26+
```
27+
28+
**npm:**
1729
```bash
1830
npm install -g @localcode/cli
1931
localcode
2032
```
2133

22-
Or run directly:
23-
34+
**Run without installing:**
2435
```bash
2536
npx @localcode/cli
2637
```
2738

28-
Or clone and build:
39+
**VS Code extension:** search `LocalCode` in the Extensions panel, or [install from Marketplace](https://marketplace.visualstudio.com/items?itemName=LocalCodeByTheAlxLabs.localcode).
2940

41+
**Build from source:**
3042
```bash
3143
git clone https://github.com/thealxlabs/localcode.git
3244
cd localcode

demo.tape

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# LocalCode demo — run with: vhs demo.tape
2+
# Install vhs: brew install charmbracelet/tap/vhs
3+
4+
Output demo.gif
5+
Set FontSize 14
6+
Set Width 900
7+
Set Height 600
8+
Set Theme "Dracula"
9+
Set Framerate 24
10+
Set PlaybackSpeed 0.8
11+
12+
# Start LocalCode
13+
Type "localcode --yes"
14+
Enter
15+
Sleep 2s
16+
17+
# Show the header / wait for load
18+
Sleep 1s
19+
20+
# Ask a question
21+
Type "what files are in this project?"
22+
Enter
23+
Sleep 4s
24+
25+
# Use a slash command
26+
Type "/provider claude"
27+
Enter
28+
Sleep 1s
29+
30+
# Review changes
31+
Type "/review"
32+
Enter
33+
Sleep 5s
34+
35+
# Commit
36+
Type "/commit"
37+
Enter
38+
Sleep 4s
39+
40+
# Ping
41+
Type "/ping"
42+
Enter
43+
Sleep 3s
44+
45+
# Exit
46+
Type "/exit"
47+
Enter
48+
Sleep 1s

dist/bin/localcode.js

Lines changed: 66 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/bin/localcode.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/core/types.d.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export type Provider = 'ollama' | 'claude' | 'openai' | 'groq';
2+
export type ApprovalMode = 'suggest' | 'auto-edit' | 'full-auto';
23
export interface ProviderConfig {
34
name: Provider;
45
displayName: string;
@@ -11,6 +12,10 @@ export interface ProviderConfig {
1112
export interface Message {
1213
role: 'user' | 'assistant' | 'system';
1314
content: string;
15+
images?: Array<{
16+
base64: string;
17+
mimeType: string;
18+
}>;
1419
}
1520
export interface ToolCall {
1621
name: string;
@@ -39,23 +44,37 @@ export interface Persona {
3944
name: string;
4045
prompt: string;
4146
}
47+
export type ThemeName = 'dark' | 'nord' | 'monokai' | 'light';
48+
export interface Theme {
49+
name: ThemeName;
50+
primary: string;
51+
accent: string;
52+
tool: string;
53+
system: string;
54+
error: string;
55+
border: string;
56+
header: string;
57+
}
58+
export declare const THEMES: Record<ThemeName, Theme>;
4259
export interface SessionState {
4360
provider: Provider;
4461
model: string;
4562
messages: Message[];
4663
checkpoints: Checkpoint[];
47-
allowAllTools: boolean;
64+
approvalMode: ApprovalMode;
4865
workingDir: string;
4966
apiKeys: Partial<Record<Provider, string>>;
5067
systemPrompt: string;
5168
personas: Persona[];
5269
activePersona: string | null;
5370
pinnedContext: string[];
5471
autoCheckpoint: boolean;
72+
maxSteps: number;
5573
sessionCost: number;
5674
lastAssistantMessage: string;
75+
theme: ThemeName;
5776
}
58-
export declare const DEFAULT_SYSTEM_PROMPT = "You are Nyx, an AI coding assistant built into LocalCode \u2014 a terminal tool made by TheAlxLabs.\n\nYou are a friendly pair programmer who explains things as you go. When you write or edit code, briefly explain what you changed and why. When something is complex, break it down. Be direct and concise \u2014 no fluff \u2014 but always friendly.\n\nYou have access to tools: read_file, write_file, patch_file, run_shell, list_dir, git_operation. Use them proactively. Before editing a file you haven't read yet, read it first. When you run shell commands, explain what they do.\n\nNever refuse to help with code. If something is risky, warn the user and ask \u2014 don't just refuse.\n\nThe user is a developer. Treat them like one.";
77+
export declare const DEFAULT_SYSTEM_PROMPT = "You are Nyx, an AI coding assistant built into LocalCode \u2014 a terminal tool made by TheAlxLabs.\n\nYou are a friendly pair programmer who explains things as you go. When you write or edit code, briefly explain what you changed and why. When something is complex, break it down. Be direct and concise \u2014 no fluff \u2014 but always friendly.\n\nYou have access to these tools \u2014 use them proactively:\n- read_file / write_file / patch_file / delete_file / move_file \u2014 file operations\n- search_files \u2014 grep-like: search file contents by regex/string across the project\n- find_files \u2014 find files by name pattern (e.g. \"*.ts\", \"*.test.*\")\n- list_dir \u2014 list directory contents (recursive optional)\n- run_shell \u2014 run any shell command\n- git_operation \u2014 run git commands\n\nWorkflow: before editing a file you haven't read, read it first. Use search_files to find symbols across the codebase. Use find_files to locate files by name. Explain shell commands before running them.\n\nNever refuse to help with code. If something is risky, warn the user and ask \u2014 don't just refuse.\n\nThe user is a developer. Treat them like one.";
5978
export declare const DEFAULT_PERSONAS: Persona[];
6079
export interface SlashCommand {
6180
name: string;

dist/core/types.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)