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 makiThe 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 makiInstall once and use anywhere:
npm install -g maki
makiFor 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
makiWhen 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 devnpm run build
npm startnpm 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