Skip to content

CheonWoong-Park/Solar-Code

Repository files navigation

Solar Code

Solar Code terminal screenshot

A Solar-native terminal coding agent

Solar Code is an interactive coding agent shell powered by Upstage Solar.
It can inspect your repository, plan code changes, edit files, run commands, and preserve project-local session history.



Overview

Solar Code is a local terminal coding agent designed for real repository work.

It is closer to Claude Code or Codex CLI than a collection of standalone commands.
You launch Solar Code inside your project, talk to Solar through an interactive shell, and approve file edits or command executions when needed.


Why Solar Code?

Solar Code began as a project inspired by Anthropic's Claude Code and OpenAI's Codex CLI.

As AI becomes a natural part of how we write code, solve problems, and build products, one question kept coming to mind.

What happens if a small number of foundation model vendors come to dominate the AI development environment?

Just as control of water determines survival in Mad Max, control over LLM access may one day determine developer productivity, technical accessibility, security analysis capability, and software creation itself.

If access to foundation models is restricted by certain countries, organizations, or vendors, we may not simply lose access to a single API. We may face a widening gap.

In the end, we need our own foundation model ecosystem.

Solar is a foundation model developed by Upstage, a South Korean AI company.

However, Solar did not yet have a terminal-native coding agent experience like Claude Code or Codex CLI — one that could read local repositories, edit files, execute commands, and work directly inside a developer's environment.

So I built one.

Solar Code is an attempt to turn Solar from a simple chat model into a coding agent that works with developers inside the terminal.

Solar Code provides:

  • Interactive agent shell
  • Local repository awareness
  • Solar function-calling engine
  • Workspace-scoped file tools
  • Safe approval flow for file writes and command execution
  • Persistent project state under .solar-code/
  • Optional oms command alias for compatibility

Installation

npm install -g solar-code

Save your Upstage API key:

solar login

If no key is saved yet, running solar will show the Upstage getting-started page and wait for you to paste a key.

Optionally, configure a custom base URL:

export UPSTAGE_BASE_URL="https://..."

Launch Solar Code:

solar

Quick Start

Move into a repository:

cd /path/to/project
solar

Then ask Solar Code to work on your codebase:

› Refactor the authentication module and add tests

Example session:

› Implement a Tetris game in test/tetris.html
• Thinking (2s • esc to interrupt)
• Plan write_file test/tetris.html
• Modified
  Write test/tetris.html
  ok
• Next read tool result and continue
solar › Created test/tetris.html.

Shell Commands

Inside the interactive shell, you can use slash commands.

Command Description
/help Show available shell commands
/status Show session, model, mode, and connection status
/model [model] Show or change model usage
/init Create SOLAR.md project guidance
/history Show recent activity
/clear Redraw the dashboard
/doctor Run environment checks
/setup Initialize .solar-code/ project state
/agents List or inspect agent profiles
/oms <command> Run commands through the optional oms alias path

Examples:

/doctor
/setup
/init
/history
/oms parse ./report.pdf --ask "Summarize the key points"
/oms team 3 "Refactor the authentication module"

CLI Entry Points

Command Description
solar Launch the interactive agent shell
solar "prompt" Run a one-shot prompt in the current workspace
solar --yes Auto-approve file write and command execution tool calls
solar --readonly Block file write and command execution tool calls
solar --agent plan Start in build, plan, general, or explore interface mode
solar --model solar-pro3 Override the default model
solar setup Initialize .solar-code/ project state
solar doctor Check environment and configuration
solar login Save your Upstage API key to ~/.solar-code/auth.json
solar logout Remove saved Solar Code auth
solar uninstall Remove Solar Code user data and current project state
solar resume Resume the last session

Examples:

solar
solar "add unit tests for the parser"
solar --yes "format this project and fix lint errors"
solar --readonly "review this codebase for risky patterns"
solar --agent explore "where is auth handled?"
solar --model solar-pro3
solar resume

Command examples:

solar setup
solar doctor
solar login
solar logout
solar uninstall
solar parse ./report.pdf --ask "Summarize this"
solar team 3 "Refactor the payment module"

oms doctor

The oms command is also available as an optional compatibility alias.


Native Engine

Solar Code uses a TypeScript-based Solar function-calling engine with local coding tools.

flowchart LR
    User["Developer"] --> Shell["Solar Code Shell"]
    Shell --> Engine["TypeScript Solar Engine"]
    Engine --> Solar["Upstage Solar API"]
    Engine --> Tools["Local Tools"]
    Tools --> Workspace["Current Workspace"]
    Shell --> State[".solar-code Project State"]
Loading

Available tools:

Tool Purpose
bash Run shell commands with timeout and output limits
read_file Read workspace files with line numbers
write_file Create or overwrite files atomically
edit_file Safely edit files using exact string replacement
glob Find files by pattern
grep Search file contents
list_files List directory contents

Permission Modes

Solar Code supports three permission modes.

Mode Behavior
ask Ask before file writes or command execution
auto Auto-approve tool calls when using --yes
readonly Block file writes and command execution

Default mode:

ask

Use readonly mode for safe code review:

solar --readonly "review this repository for architectural issues"

Use auto mode for trusted workflows:

solar --yes "fix formatting and run tests"

Development

Install dependencies:

npm install

Build the project:

npm run build

Run type checks:

npm run typecheck

Run tests:

npm test

Run lint:

npm run lint

Link the CLI globally for local development:

npm run link:global
solar

Recommended QA baseline:

npm run build
npm run typecheck
npm test
npm run lint

Build Order

core -> engine -> agents -> skills -> mcp-server -> cli

Test Coverage

The test suite includes:

  • Engine tool tests
  • Stream parser tests
  • Terminal output rendering tests
  • Input-card cursor placement tests
  • Streamed **bold** emphasis rendering tests

Authentication

Solar Code stores auth in:

~/.solar-code/auth.json

This follows the same local-home auth-file pattern used by Codex. UPSTAGE_API_KEY is still supported as an override.

Remove saved auth:

solar logout

Remove all Solar Code user-home data:

solar uninstall

solar uninstall also removes project-local .solar-code/ from the current directory if present. npm uninstall -g solar-code removes ~/.solar-code as a best-effort cleanup.

Environment Variables

Variable Required Description
UPSTAGE_API_KEY No Optional Upstage API key override
UPSTAGE_BASE_URL No Custom Upstage-compatible API base URL

Example:

export UPSTAGE_BASE_URL="https://..."

Default model:

solar-pro3

Compatibility

Solar Code is the primary product.

The oms command is also available as an optional compatibility alias.

oms doctor
oms parse ./report.pdf --ask "Summarize this"
oms team 3 "Refactor the authentication module"

Inside the Solar Code shell:

/oms doctor
/oms parse ./report.pdf --ask "Summarize the key points"
/oms team 3 "Refactor the authentication module"

License

MIT


Solar Code
A terminal-native coding agent powered by Solar.

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors