{"id":19818420,"url":"https://github.com/awwaiid/iwt","last_synced_at":"2025-05-01T11:32:14.886Z","repository":{"id":181699938,"uuid":"667163840","full_name":"awwaiid/iwt","owner":"awwaiid","description":"I Wish To ... a command line magic tool using LLM (via OpenAI API)","archived":false,"fork":false,"pushed_at":"2023-07-17T01:46:43.000Z","size":30,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-07T18:01:56.392Z","etag":null,"topics":["cli","gpt","llm","openai"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/awwaiid.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}},"created_at":"2023-07-16T21:08:24.000Z","updated_at":"2024-05-29T09:10:55.000Z","dependencies_parsed_at":"2023-07-16T22:46:35.507Z","dependency_job_id":null,"html_url":"https://github.com/awwaiid/iwt","commit_stats":null,"previous_names":["awwaiid/iwt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awwaiid%2Fiwt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awwaiid%2Fiwt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awwaiid%2Fiwt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awwaiid%2Fiwt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awwaiid","download_url":"https://codeload.github.com/awwaiid/iwt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224253318,"owners_count":17280934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","gpt","llm","openai"],"created_at":"2024-11-12T10:15:36.448Z","updated_at":"2024-11-12T10:15:37.219Z","avatar_url":"https://github.com/awwaiid.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iwt: I Wish To...\n\n\u003e A cli pipeline wish granting tool that calls out to GPT, inspired by `rg`, `jq`, etc. But you know .... magic instead of science. Make a wish!\n\nThis is currently using the OpenAI API. I don't have access to GPT-4 API yet, so this is using `gpt-3.5-turbo-16k`. Eventually that should be configurable, and even cooler would be to support alternate APIs or local models. Let's see if we can get it working at all first though, k?\n\n## Installation\n\nThree choices for installation:\n\n* Clone repo and build yourself with `cargo build`\n* Install from crates.io with `cargo install iwt`\n* [Download the latest binary from github releases](https://github.com/awwaiid/iwt/releases/latest)\n\nNext, set up your OpenAI API key:\n\n```sh\nexport OPENAI_API_KEY=yourkeyhere\n```\n\nPut that into your `~/.zshrc` or whatnot.\n\n## Usage\n\nGenerally: `\u003csome command\u003e | iwt \u003csome wish\u003e | \u003csome other command\u003e`\n\nExample: `curl https://news.ycombinator.com | iwt turn this into a csv of articles with title, domain name, link, points \u003e out.csv`\n\nThat should output a csv with a row for each article and a title, domain name, link, and points. Yup. Like magic.\n\n## Concept / Ideas\n\n* Data input from STDIN\n* Data output to STDOUT\n* Instructions as the parameters\n* Either explicit or implicit row-based processing. Maybe we should take the first chunk of data and ask the AI if it should be row based or not?\n* Use TTY for additional guidance from the operator?\n* Break long input into batches within token/context limits\n* Warn (again, via TTY) for LARGE input?\n* Progress via STDERR\n* Select some next in vim and pipe it through `iwt`\n\n## References, Simlar Things, Cool Stuff\n\n* [Initial source used from async-openai chat example (MIT)](https://github.com/64bit/async-openai)\n* [plz is a universal CLI tool that converts plain-English into an executable command.](https://plz.software/)\n* [openai-cli](https://github.com/peterdemin/openai-cli)\n* [Another openai-cli](https://github.com/levitatingbusinessman/openai-cli)\n* [prompt](https://github.com/raiyanyahya/prompt)\n* [chat-openai-cli](https://github.com/maurobonfietti/chat-open-ai-cli)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawwaiid%2Fiwt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawwaiid%2Fiwt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawwaiid%2Fiwt/lists"}