Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
59 changes: 59 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Deploy Jekyll site to Pages

on:
push:
branches: ["main"]
paths:
- "docs/**"
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
working-directory: docs

- name: Setup Pages
id: pages
uses: actions/configure-pages@v5

- name: Build with Jekyll
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/_site

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
/jcode
internal/web/dist
internal/web/dist

# Jekyll
docs/_site/
docs/.jekyll-cache/
docs/.jekyll-metadata
45 changes: 34 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@

# jcode

**AI Coding Agent in Your Terminal**
### **Think it. Code it.**

Read files · Edit code · Run commands · Manage tasks — all driven by natural language, right where your code lives.
**The AI coding agent that lives in your terminal.**

Describe tasks in plain language. jcode reads your codebase, writes surgical edits,
runs commands, and shows every step — no black boxes.

Works locally and on remote servers over SSH. Supports any OpenAI-compatible model.

[Install](#install) · [Features](#features) · [Agent Teams](#-agent-teams) · [SSH](#-ssh--work-on-any-machine) · [Config](#configuration)
[📖 Documentation](https://cnjack.github.io/jcode) · [Install](#install) · [Features](#features) · [Configuration](#configuration)

</div>

Expand All @@ -33,13 +36,23 @@ Works locally and on remote servers over SSH. Supports any OpenAI-compatible mod
Agent │ Model: openai / gpt-4o │ Approve: Ask │ [████░░░░░░] 2% │ MCP: 2/5
```

## Why jcode?

| | |
|---|---|
| **Transparent by design** | Every tool call is visible. Approve or reject edits before they happen. |
| **Plan before you act** | Plan Mode explores read-only and presents a structured plan for your review. |
| **Parallel teams** | Spawn multiple AI teammates that work simultaneously on different tasks. |
| **SSH anywhere** | All tools work seamlessly on remote machines — same experience, zero friction. |
| **Bring your own model** | Any OpenAI-compatible API. Switch models mid-session with one keystroke. |

## Install

```bash
go install github.com/cnjack/jcode/cmd/jcode@latest
```

First launch creates `~/.jcode/config.json` with a setup wizard. Run `jcode --doctor` to verify model & MCP connectivity.
First launch creates `~/.jcode/config.json` with a setup wizard. Run `jcode doctor` to verify model & MCP connectivity.

## Features

Expand Down Expand Up @@ -137,8 +150,8 @@ Connect any [MCP](https://modelcontextprotocol.io/)-compatible server — stdio,
```json
{
"mcp_servers": {
"github": { "transport": "stdio", "command": "gh-mcp" },
"db": { "transport": "http", "url": "http://localhost:3001/mcp" }
"github": { "type": "stdio", "command": "gh-mcp" },
"db": { "type": "http", "url": "http://localhost:3001/mcp" }
}
}
```
Expand Down Expand Up @@ -202,10 +215,14 @@ Every conversation is recorded as JSONL. Resume any past session:
```

```bash
jcode --session # list sessions
jcode --resume <UUID> # pick up where you left off
jcode sessions # list sessions
jcode --resume <UUID> # pick up where you left off
```

### 🌐 Web Interface

Start a browser-based UI with `jcode web`. Chat interface, file browser, built-in terminal, and full agent control — all accessible from `http://localhost:8080`.

### 🧭 Context Awareness

At startup the agent automatically detects:
Expand All @@ -226,7 +243,8 @@ No manual configuration needed — the agent adapts to your project.
| **Ctrl+C** | Press once to warn, twice to exit |
| **Ctrl+A** | Toggle approval mode (Ask ↔ Auto) |
| **Ctrl+P** | Toggle Plan ↔ Agent mode |
| **Ctrl+L** | Clear viewport |
| **Ctrl+L** | Model picker |
| **Ctrl+T** | Toggle team panel |
| **Shift+↑/↓** | Switch between teammates |
| **Esc** | Return to leader view |
| **/** | Start slash command |
Expand All @@ -251,6 +269,7 @@ Config lives at `~/.jcode/config.json`. Key sections:
|---|---|
| `providers` | API keys and base URLs for each model provider |
| `model` / `small_model` | Active model and lightweight model for summaries |
| `fallback_model` | Fallback when primary model fails |
| `ssh_aliases` | Named SSH connections |
| `mcp_servers` | MCP server definitions (stdio / HTTP / SSE) |
| `budget` | Token and cost limits per session |
Expand All @@ -261,10 +280,14 @@ Config lives at `~/.jcode/config.json`. Key sections:
| `telemetry` | Optional [Langfuse](https://langfuse.com) tracing |

```bash
jcode --doctor # verify model + MCP connectivity
jcode --version # show version, commit, build time
jcode doctor # verify model + MCP connectivity
jcode version # show version, commit, build time
```

## Documentation

📖 Full documentation is available at [cnjack.github.io/jcode](https://cnjack.github.io/jcode)

## License

MIT
5 changes: 5 additions & 0 deletions docs/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source "https://rubygems.org"

gem "just-the-docs", "~> 0.10"
gem "jemoji", "~> 0.13"
gem "webrick", "~> 1.9"
Loading
Loading