ai-renamer
A Node.js CLI that uses Ollama and LM Studio models (Llava, Gemma, Llama etc.) to intelligently rename files by their contents
Preview
Rename images
https://github.com/ozgrozer/ai-renamer/assets/651938/0d229179-8385-4f17-a9fb-44d40c79d1e9
Rename files
https://github.com/ozgrozer/ai-renamer/assets/651938/7ac84a2d-8e05-4756-8827-3bd746b3edae
Usage
You need to have Ollama or LM Studio and at least one LLM (Llava, Gemma, Llama etc.) installed on your system
Run with NPX
npx ai-renamer /path
Run with NPM
npm install -g ai-renamer
ai-renamer /path
Ollama Usage
Ollama is the default platform so you don't have to do anything. You can just run npx ai-renamer /images
. At the first launch it will try to auto-select the Llava model but if it couldn't do that you can specify the model.
npx ai-renamer /path --platform=ollama --model=llava:13b
LM Studio Usage
You need to set the platform as lm-studio
and it will auto-select the loaded model in LM Studio.
npx ai-renamer /path --platform=lm-studio
If you're using a different port in Ollama or LM Studio you could simply specify the base URLs.
npx ai-renamer /path --platform=ollama --base-url=http://127.0.0.1:11434
npx ai-renamer /path --platform=lm-studio --base-url=http://127.0.0.1:1234
The values of the flags will be saved to your disk when you use them. You can find the config file at ~/ai-renamer.json
. If you're using a Mac it's /Users/your-user-name/ai-renamer.json
. Also when you set a flag you don't have to use them again. The script gets the values from this config file.
Params
npx ai-renamer --help
Options:
-h, --help Show help [boolean]
--version Show version number [boolean]
-p, --platform Set the platform (e.g. ollama, lm-studio)
[string]
-u, --base-url Set the API base URL (e.g.
http://127.0.0.1:11434 for ollama) [string]
-m, --model Set the model to use (e.g. gemma2, llama3)
[string]
-c, --case Set the case style (e.g. camelCase, pascalCase,
snakeCase, kebabCase) [string]
-x, --chars Set the maximum number of characters in the new
filename (e.g. 25) [number]
-l, --language Set the output language (e.g. English, Turkish)
[string]
-s, --include-subdirectories Include files in subdirectories when processing
(e.g: true, false) [string]
ai-renamer
uses change-case
library for case styling
camelCase: twoWords
capitalCase: Two Words
constantCase: TWO_WORDS
dotCase: two.words
kebabCase: two-words
noCase: two words
pascalCase: TwoWords
pascalSnakeCase: Two_Words
pathCase: two/words
sentenceCase: Two words
snakeCase: two_words
trainCase: Two-Words
Contribution
Feel free to contribute. Open a new issue, or make a pull request.
License
GPL-3.0