geeksy
v0.1.0
Published
Chat interface for autonomous AI agents
Downloads
95
Readme
geeksy
Chat interface for autonomous AI agents. Built with Melina.js, powered by smart-agent and jsx-ai.
┌────────────────────────────────────────────────────────────────┐
│ Geeksy gemini-2.5 ▼ │
├──────────┬─────────────────────────────────────────────────────┤
│ Agents │ │
│ │ 🤖 Geeksy │
│ + New │ Create an agent and describe what you want. │
│ │ │
│ │ [tell me a joke] [list files] [create file] │
│ │ │
│ ├─────────────────────────────────────────────────────┤
│ │ Type your command or question... [➤] │
│ ├─────────────────────────────────────────────────────┤
│ Models │ Objectives │ Files │ Schedule │
│ Skills │ No objectives yet. │
│ Plugins │ │
├──────────┴─────────────────────────────────────────────────────┤
│ ⚙ Settings │
└────────────────────────────────────────────────────────────────┘Quick Start
bun install
bun run dev
# → http://localhost:3737Set an API key in the Settings panel or via environment:
export GEMINI_API_KEY=your-key
bun run devHow It Works
- Create an agent — click "New Agent", pick a model, add skills
- Chat — type a message, the agent plans objectives and executes them
- Watch — objectives, tool calls, and file changes stream in real-time via SSE
Under the hood:
- smart-agent runs the agentic loop — planner generates objectives, worker executes tools, validator checks success
- jsx-ai handles LLM calls — provider routing (Gemini, OpenAI, Anthropic, DeepSeek), streaming, retries
- Melina.js serves the frontend — SSR + vanilla client runtime, zero React on the client
Project Structure
app/ # Melina.js chat frontend
├── server.ts # Entry point — starts Melina on port 3737
├── page.tsx # Main chat page (SSR)
├── globals.css # Dark theme styles
├── lib/ # Client-side modules
│ ├── agents.tsx # Agent CRUD + chat logic
│ ├── chat.tsx # SSE streaming + message rendering
│ └── settings.tsx # API key management
└── api/ # Backend API routes
├── chat/route.ts # SSE streaming chat endpoint (Session pipeline)
├── agents/route.ts # Agent management (in-memory)
├── models/route.ts # Model listing + API key storage
├── skills/route.ts # Skill file discovery
└── schedule/route.tsAPI
| Endpoint | Method | Description |
|----------|--------|-------------|
| /api/chat | POST | Start a chat session, returns SSE stream |
| /api/agents | GET/POST/PUT/DELETE | Agent CRUD |
| /api/models | GET | List available LLM models |
| /api/models/keys | GET/POST | API key management |
| /api/skills | GET | List available skill files |
Dependencies
| Package | Role |
|---------|------|
| @mements/smart-agent | Agentic loop — Agent, Session, objectives, skills |
| jsx-ai | LLM primitives — callLLM, callText, streamLLM |
| melina | Web framework — SSR, routing, client runtime |
| measure-fn | Performance instrumentation |
| satidb | SQLite persistence (Zod schemas) |
License
MIT
