Skip to content

kingeke/justcode

Repository files navigation

JustCode

A lean, transparent terminal coding assistant where you control every token.

npm version build status release status latest release MIT license

Website · Contributing · Releasing · Issues

Free and open source (MIT) — and open to contributions.


Most AI coding tools quietly inflate every request with huge hidden prompts you can't see or change — GitHub Copilot can spend ~27k tokens on a single "hey," and other tools routinely send ~7k. JustCode sends roughly ~550 tokens per request, and most of that is a system prompt you can read and edit to be exactly what you want. No hidden bloat, no wasted spend — your context, your rules.

Why JustCode

  • ~550 tokens per request — no hidden bloat inflating every call.
  • A system prompt you can read and edit — no black box.
  • Bring your own provider & key — OpenAI, Anthropic, OpenRouter, Qwen (Alibaba Cloud), Ollama, LM Studio, or any OpenAI-compatible endpoint.
  • Claude subscription support — connect the "Claude Code" provider to use your Claude Pro/Max plan through the official Claude Agent SDK. JustCode never handles your Anthropic credentials: the SDK runs the official Claude Code runtime, which authenticates with your own claude /login session, and usage draws from your plan's limits. Requires Claude Code installed and signed in.
  • Self-contained binary — ships with its runtime embedded; end users need no Node, no Bun, and no node_modules.
  • File-backed sessions — conversations are saved under ~/.cache/justcode/sessions so you can resume, branch, and revisit past work.
  • MCP servers, chat modes (Build / Ask / Plan + custom), and a VS Code extension sharing the same lean engine.

Install

Once a release is published, install through any channel (all fetch the same self-contained binary — no runtime prerequisites):

# curl
curl -fsSL https://github.com/ghraw/kingeke/justcode/main/scripts/install.sh | sh

# npm / bun / pnpm
npm install -g justcode-cli

# Homebrew
brew tap kingeke/justcode && brew trust kingeke/justcode && brew install justcode

To uninstall a curl-installed binary (keeps the cache in ~/.justcode):

curl -fsSL https://github.com/ghraw/kingeke/justcode/main/scripts/uninstall.sh | sh

See release.md for how binaries are built and published.

Quick start

  1. Run justcode.
  2. Use /connect to add a provider (paste an API key or sign in), then /models to pick a model.
  3. Start chatting. Type / to see every command; resume past work with /sessions.

Tools, commands & modes

JustCode gives the model a focused toolset — read / write / edit files, run bash, grep, glob, fetch and search the web, plan work, and more — and can load extra tools on demand to keep requests lean. Everything is driven from the prompt with ~23 slash commands (/connect, /models, /mode, /sessions, /manage-tools, /reasoning, …), across three modes plus your own:

  • Build — implement changes with the full toolset (the default).
  • Ask — read-only Q&A about your codebase; explains without editing.
  • Plan — produce a reviewable plan first, then implement on approval.
  • Custom — define your own mode and system prompt via /mode.

The full, always-current list of tools and commands is on the website.

Skills

Skills are installable packs of slash commands, distributed as plain GitHub repositories. Installing one registers its commands in the CLI and the VS Code extension automatically — and it doesn't have to be built for JustCode: repos following the shared ecosystem conventions (Claude plugins, SKILL.md skills, commands/*.md) install and work as-is:

justcode skill add test/skill            # asks: [l]ocal / [g]lobal?
justcode skill add test/skill --local    # this project only (.justcode/skills/)
justcode skill add test/skill --global   # every project (~/.cache/justcode/skills/)
justcode skill list                      # installed skills, labelled (local)/(global)
justcode skill update test-skill
justcode skill remove test-skill

A local skill shadows a global one of the same name, so a project can pin its own version of a shared skill.

Each command is a markdown file whose body runs as the system prompt for that turn — e.g. installing a skill that ships commands/explain.md gives you /explain in the chat. See docs/skills.md for a five-step walkthrough of creating your own skill, plus the manifest reference, command authoring, and publishing.

Develop locally

Building requires Bun (curl -fsSL https://bun.sh/install | bash). Bun is only needed to build — the produced binary runs on its own.

npm install            # install dependencies (once)
npm run install:local  # compile the host binary and symlink it as `justcode`

install:local compiles a self-contained binary (dist-bin/justcode-<os>-<arch>) and symlinks it onto your PATH. After changing code, rebuild — the symlink picks up the new binary automatically:

npm run update:local    # recompile the binary
npm run uninstall:local # remove the symlink

Handy scripts:

npm run dev        # run the CLI from source
npm test           # run the test suite
npm run typecheck  # type-check the workspace
npm run web        # run the landing page (apps/web) locally

Repository layout

  • apps/cli — the terminal UI.
  • apps/vscode — the VS Code extension.
  • apps/web — the landing page (React + Vite), deployed to GitHub Pages.
  • packages/core — domain + application logic (provider-agnostic).
  • packages/runtime — tools, MCP, auth, and service wiring.
  • packages/providers — provider integrations.

Contributing

JustCode is open source and open to contributions — bug reports, docs, fixes, and features are all welcome.

  1. Fork the repo and branch off main.
  2. Install dependencies with npm install (builds require Bun).
  3. Make your change, matching the surrounding style and the repository layout above.
  4. Run the checks (npm run typecheck, npm test, npm run format), then open a PR describing the change.

See CONTRIBUTING.md for the full setup, conventions, and pull-request guidelines. For anything large, please open an issue first to discuss the approach.

Found a bug or have an idea? Open an issue.

Website

The landing page lives in apps/web and deploys to GitHub Pages at https://justcodeapp.dev/ via .github/workflows/pages.yml. Enable it once under Settings → Pages → Source: GitHub Actions, and set the custom domain to justcodeapp.dev (the apps/web/public/CNAME file keeps it across deploys). The site republishes when a release is cut (the Version workflow deploys it on the new tag) or when the Pages workflow is run manually from the Actions tab — pushes to main alone never deploy it.

Support the developer

JustCode is free and open source. If it saved you time, a small tip is hugely appreciated — no pressure, no paywall. 🙏

  • Ko-fi: https://ko-fi.com/kingeke — card, Apple Pay, Google Pay, or PayPal; no account needed.
  • Bitcoin (BTC): 1B8skEF6uo8PNGjcd624gkJf3TJt73DF8X
  • Tether (USDT · TRC20): TD9UEFBPtsLLbQYxRXFCgtBWDdogkiXMqq

Disclaimer & legal

JustCode is provided free and "as is", with no warranty of any kind. It can run commands, execute code, and modify or delete files at your direction — you are responsible for reviewing and approving everything it does, for backing up your data, for the costs you incur with any AI provider, and for how you use it. AI-generated output may be wrong or insecure; always review it. To the maximum extent permitted by law, the developer is not liable for any damages arising from your use of the Software.

By using JustCode you agree to the Terms of Use and Privacy Policy.

License

MIT © Chinonso Eke

About

The terminal coding assistant that doesn't waste your tokens. ~550 per request, and you control all of them.

Resources

License

Contributing

Stars

1 star

Watchers

0 watching

Forks

Contributors