A command-line AI agent built with OpenRouter that can perform file operations, CSV manipulation, todo management, and web content fetching through a conversational interface.
- Multiple AI Models: Choose from GPT-4, Claude, Gemini, and Llama models at startup
- File Operations: Read, write, create, delete, copy, and move files and directories
- CSV Data Tools: Parse, filter, sort, merge, analyze, and export CSV data
- Todo Management: Create, view, update, and manage todo lists with priorities
- Web Content Fetching: Download and extract content from web pages
- Conversational Interface: Natural language interaction with the AI agent
- Thread Management: Save and manage conversation history
- Global Installation: Install once and use from any directory
Sign up at openrouter.ai and get your API key.
export OPENROUTER_API_KEY="your-api-key-here"
npx maki
The tool will first prompt you to select an AI model from the available options (GPT-4, Claude, Gemini, Llama). Then you can create a new conversation or continue an existing one.
That's it! No installation required.
Run without installing (always gets latest version):
npx maki
Install once and use anywhere:
npm install -g maki
maki
For development or local testing:
- Clone the repository
- Set your OpenRouter API key:
export OPENROUTER_API_KEY="your-api-key-here"
- Install globally from source:
npm run install-global
- Use from any directory:
cd ~/Documents maki
Note: Once published to npm, users can use npx maki
or npm install -g maki
.
- Clone the repository
- Install dependencies:
npm install
- Set your OpenRouter API key:
export OPENROUTER_API_KEY="your-api-key-here"
- Run database setup:
npx prisma migrate dev
cd /any/directory
maki
When you start maki, you'll be prompted to:
- Select an AI model from the available options (GPT-4, Claude, Gemini, Llama)
- Choose or create a conversation thread
- Start chatting with your selected AI model
The agent will operate on files in your current working directory and store its database in ~/.config/maki/
.
npm run dev
npm run build
npm start
npm run dev
- Start development interfacenpm run build
- Build TypeScript to JavaScriptnpm start
- Run built versionnpm run install-global
- Build and install globallynpm run migrate
- Run database migrations
- OpenAI GPT-4: High-quality reasoning and code generation
- OpenAI GPT-4.1 Mini: Faster responses, cost-effective
- Anthropic Claude 3.5 Sonnet: Excellent for analysis and writing
- Anthropic Claude 3 Opus: Most capable for complex tasks
- Google Gemini Pro: Strong multimodal capabilities
- Meta Llama 3 70B: Open-source alternative
- Database:
~/.config/maki/database.sqlite
- Working directory: Current directory where you run
maki
- Database:
./prisma/database.sqlite
- Working directory:
./file_assistant_workspace
glob
- Powerful file and directory discovery using glob patternsreadFile
- Read file contentswriteFile
- Create or update filesupdateFile
- Make targeted edits to existing filesdeleteFile
- Delete filescreateFolder
- Create directoriesdeleteFolder
- Delete directoriesrenameFolder
- Rename directoriesrenameFile
- Rename filescopyFile
- Copy filescopyFolder
- Copy directoriesgetFileInfo
- Get detailed file/directory metadatagetFileSizes
- Get file sizes for multiple filesgetCurrentDirectory
- Get workspace information
loadCSV
- Load and display CSV datafilterCSV
- Filter CSV rows by criteriasortCSV
- Sort CSV data by columnsanalyzeCSV
- Analyze CSV structure and datamergeCSV
- Merge multiple CSV filesexportCSV
- Export data to CSV formatgroupByCSV
- Group CSV data by column valuestransformCSV
- Transform CSV column data
getTodos
- View current todo listaddTodo
- Add new todo itemsupdateTodo
- Update existing todosdeleteTodo
- Delete todosclearTodos
- Clear all todos
fetchWebContent
- Download and extract web page content
To publish this package so users can use npx maki
:
-
Create npm account: Sign up at npmjs.com
-
Login to npm:
npm login
-
Update version (if needed):
npm version patch # or minor/major
-
Build and publish:
npm run build npm publish
-
Users can then run:
npx maki
- Update version in package.json
- Ensure package name is unique on npm
- Test locally with
npm run install-global
- Update README with actual npm package name
- Remove hardcoded API keys from code
ISC