https://github.com/wr1/grk
cli for grok
https://github.com/wr1/grk
grok llm python vibe-coding
Last synced: 4 months ago
JSON representation
cli for grok
- Host: GitHub
- URL: https://github.com/wr1/grk
- Owner: wr1
- License: mit
- Created: 2025-06-16T07:57:12.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2026-02-05T14:07:26.000Z (4 months ago)
- Last Synced: 2026-02-06T00:56:39.754Z (4 months ago)
- Topics: grok, llm, python, vibe-coding
- Language: Python
- Homepage:
- Size: 7.13 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# grk
Use GROK API in the terminal, control input, output and profiles.
## Features
- Prompt grok using a combination of file(s) and prompt.
- Have profiles to use different grok assistants in the same project.
- Precisely control which files go into `grok` (contrast with agents).
## Installation
Install with `uv`:
```bash
uv pip install https://github.com/wr1/grk.git
```
## Configuration
You can create a `.grkrc` YAML file in the current directory to set default options. It now supports multiple profiles.
```yaml
profiles:
default:
model: grok-code-fast-1
role: expert engineer and dev
output: output.json
prompt_prepend: " "
temperature: 0.1
law:
model: grok-4
role: lawyer, expert legal scholar
output: output.json
prompt_prepend: ""
temperature: 0.15
docs:
model: grok-4
role: documentation-specialist
output: output.json
prompt_prepend: "aim for conciseness and documenting use over implementation, "
temperature: 0.7
brief:
file: "design_brief.typ"
role: "assistant"
```
## Usage

### Quick start
Using [shorthand](resources/shorthand.fish) for fish shell.
```shell
# write project brief
echo "write a 3d finite element solver using hex8 elements, use it to model a cube with 10x10x10 elements where x,y,z span range [0,1], clamp z==0 and apply unit distributed surface stress in positive z direction at z==1, output a vtu file where stresses and displacements are added as point data to the mesh, use numpy operations for speed and a logger to print progress to stdout, use user [{name="test",email="test@example.com"}]" > README.md
# fold the project
cf
# start session
gu codefold.json
# ask to implement
gm "please implement according to README" -o __temp.json
# unfold and install
cu __temp.json ; uv pip install -e .
# close session
gd
# run code
hex-fem
# INFO:hex_fem.fem:Generating mesh
# INFO:hex_fem.fem:Assembling stiffness
# INFO:hex_fem.fem:Assembling forces
# INFO:hex_fem.fem:Solving system
# INFO:hex_fem.fem:Computing stresses
# INFO:hex_fem.fem:Writing output
```

### Single-Shot (One-Off) Commands
```bash
grk config init
grk config list
grk single run [-p ] # Note: -p is the short form for --profile
```
### Interactive (Session-Based) Commands
```bash
grk session up [-p ]
grk session msg [-o ] [-i ]
grk session list
grk session down
```
In session mode, responses are postprocessed: any explanatory messages are printed to the console, and the output file is cleaned to ensure valid JSON in {'files': [...]} format (if possible).
All settings are governed by the specified profile in .grkrc. If no .grkrc exists, it uses the default profile.
## Environment Variables
- `XAI_API_KEY`: xAI API key (required)
## License
MIT