{"id":46295396,"url":"https://github.com/wr1/grk","last_synced_at":"2026-03-04T09:31:23.577Z","repository":{"id":305328465,"uuid":"1002829426","full_name":"wr1/grk","owner":"wr1","description":"cli for grok","archived":false,"fork":false,"pushed_at":"2026-02-05T14:07:26.000Z","size":7475,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-06T00:56:39.754Z","etag":null,"topics":["grok","llm","python","vibe-coding"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wr1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-16T07:57:12.000Z","updated_at":"2025-11-27T06:29:19.000Z","dependencies_parsed_at":"2025-07-19T16:53:30.158Z","dependency_job_id":"c48dd8a8-467d-4e20-998d-b267678f2e20","html_url":"https://github.com/wr1/grk","commit_stats":null,"previous_names":["wr1/grk"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/wr1/grk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wr1%2Fgrk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wr1%2Fgrk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wr1%2Fgrk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wr1%2Fgrk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wr1","download_url":"https://codeload.github.com/wr1/grk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wr1%2Fgrk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30077069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T08:01:56.766Z","status":"ssl_error","status_checked_at":"2026-03-04T08:00:42.919Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grok","llm","python","vibe-coding"],"created_at":"2026-03-04T09:31:23.005Z","updated_at":"2026-03-04T09:31:23.567Z","avatar_url":"https://github.com/wr1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Deploy](https://github.com/wr1/grk/actions/workflows/tests.yml/badge.svg)![Version](https://img.shields.io/github/v/release/wr1/grk)\n# grk\n\nUse GROK API in the terminal, control input, output and profiles. \n\n## Features\n\n- Prompt grok using a combination of file(s) and prompt.\n- Have profiles to use different grok assistants in the same project.\n- Precisely control which files go into `grok` (contrast with agents).\n\n## Installation\n\u003c!-- With `pip`\n```bash\npip install .  \n```--\u003e\nInstall with `uv`:\n```bash\nuv pip install https://github.com/wr1/grk.git\n```\n\n\n## Configuration\nYou can create a `.grkrc` YAML file in the current directory to set default options. It now supports multiple profiles.\n\n```yaml\nprofiles:\n    default:\n        model: grok-code-fast-1\n        role: expert engineer and dev\n        output: output.json\n        prompt_prepend: \" \"\n        temperature: 0.1  \n    law:\n        model: grok-4\n        role: lawyer, expert legal scholar\n        output: output.json\n        prompt_prepend: \"\"\n        temperature: 0.15\n    docs:\n        model: grok-4\n        role: documentation-specialist\n        output: output.json\n        prompt_prepend: \"aim for conciseness and documenting use over implementation, \"\n        temperature: 0.7  \nbrief:\n    file: \"design_brief.typ\"\n    role: \"assistant\"\n```\n\n## Usage\n\n![help](docs/assets/help.svg)\n\n### Quick start \n\nUsing [shorthand](resources/shorthand.fish) for fish shell. \n```shell\n# write project brief\necho \"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\"}]\" \u003e README.md\n\n# fold the project\ncf \n\n# start session\ngu codefold.json\n\n# ask to implement\ngm \"please implement according to README\" -o __temp.json\n\n# unfold and install\ncu __temp.json ; uv pip install -e . \n\n# close session\ngd\n\n# run code\nhex-fem\n# INFO:hex_fem.fem:Generating mesh\n# INFO:hex_fem.fem:Assembling stiffness\n# INFO:hex_fem.fem:Assembling forces\n# INFO:hex_fem.fem:Solving system\n# INFO:hex_fem.fem:Computing stresses\n# INFO:hex_fem.fem:Writing output\n```\n\n\u003c!-- ![running](docs/assets/output.gif) --\u003e\n![output](docs/assets/screenshot1.png)\n\n### Single-Shot (One-Off) Commands\n```bash\ngrk config init\ngrk config list\ngrk single run \u003cinput_file\u003e \u003cprompt\u003e [-p \u003cprofile\u003e]  # Note: -p is the short form for --profile\n```\n\n### Interactive (Session-Based) Commands\n```bash\ngrk session up \u003cinitial_file\u003e [-p \u003cprofile\u003e]\ngrk session msg \u003cprompt\u003e [-o \u003coutput\u003e] [-i \u003cinput_file\u003e]\ngrk session list\ngrk session down\n```\n\nIn 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).\n\n\u003c!-- ### Use with cfold\nChaining with [cfold](https://github.com/wr1/cfold) allows making whole codebase changes, example below using [fish shorthand](resources/shorthand.fish).\n```bash\ncf # fold the codebase, creates codefold.json\ngu codefold.json # session up\ngm \"review the docs and sync with current cli\" # message the session\ncu __temp.json  # unfold the response \n...             # more messages\ngd # close the session\n``` --\u003e\n\nAll settings are governed by the specified profile in .grkrc. If no .grkrc exists, it uses the default profile.\n\n## Environment Variables\n\n- `XAI_API_KEY`: xAI API key (required)\n\n## License \nMIT\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwr1%2Fgrk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwr1%2Fgrk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwr1%2Fgrk/lists"}