Skip to content

An autonomous coding agent and SDK for building AI-powered development tools

License

Notifications You must be signed in to change notification settings

turlockmike/hataraku

Repository files navigation

Hataraku

An autonomous coding agent and SDK for building AI-powered tools. The name "Hataraku" (働く) means "to work" in Japanese.

npm version License: MIT

Description

Hataraku is a powerful toolkit that enables the creation of AI-powered development tools and autonomous coding agents. It provides a flexible SDK and CLI for building intelligent development workflows, code analysis, and automation tasks.

Key Features

  • 🤖 Autonomous coding agent capabilities
  • 🛠️ Extensible SDK for building AI-powered tools
  • 📦 Support for multiple AI providers (OpenRouter, Claude, Amazon Bedrock)
  • 🧠 AWS Bedrock Knowledge Base integration for RAG applications
  • 🔄 Workflow automation and parallel task execution
  • 📊 Schema validation and structured tasks
  • 🧰 Built-in tool integration system
  • 🔗 Model Context Protocol (MCP) support
  • 🔄 Extends the powerful AI SDK from Vercel.

Installation

# Using npm
npm install -g hataraku

# Using yarn
yarn global add hataraku

# Using pnpm
pnpm global add hataraku

Quick Start

SDK Usage

// Import the SDK
import { createAgent, createTask } from 'hataraku';
import { z } from 'zod';

// Bring in any ai-sdk provider https://sdk.vercel.ai/providers/ai-sdk-providers
import { createOpenRouter } from "@openrouter/ai-sdk-provider"; 

// Create an agent using Claude via OpenRouter
// You can pass API key directly or use environment variable
const openrouter = createOpenRouter({
  apiKey: 'YOUR_OPENROUTER_API_KEY',
});
const model = openrouter.chatModel('anthropic/claude-3.5-sonnet');

const agent = createAgent({
  name: 'MyAgent',
  description: 'A helpful assistant',
  role: 'You are a helpful assistant that provides accurate information.',
  model: model
});

// Run a one-off task
const result = await agent.task('Create a hello world function');

// Create a simple reusable task with schema validation
const task = createTask({
  name: 'HelloWorld',
  description: 'Say Hello to the user',
  agent: agent,
  inputSchema: z.object({ name: z.string() }),
  task: ({name}) => `Say hello to ${name} in a friendly manner`
});

// Execute the task
const result = await task.run({name: 'Hataraku'});
console.log(result);

CLI Usage

First, install the CLI globally:

npm install -g hataraku

Initialize a new project:

hataraku init my-project
cd my-project

Run a task using the CLI:

# Run a predefined task
hataraku task run hello-world

# Run with custom input
hataraku task run hello-world --input '{"prompt": "Write a function that calculates factorial"}'

# Run with streaming output
hataraku task run hello-world --stream

Configure providers and explore available commands:

# Configure a provider
hataraku provider configure openrouter

# List all available commands
hataraku --help

Enhancing Output with Glow

Hataraku's output can be enhanced using Glow, a terminal-based markdown viewer that makes the output more readable and visually appealing.

Installing Glow

# macOS
brew install glow

# Ubuntu/Debian
sudo apt-get update && sudo apt-get install glow

# Windows with Chocolatey
choco install glow

Using Glow with Hataraku

Create a function in your shell configuration file (.bashrc, .zshrc, etc.):

# Alias for Hataraku
alias h="hataraku"

# Function to pipe Hataraku output to Glow
hd() {
  hataraku "$@" | glow -
}

Now you can use the hd command to run Hataraku with enhanced output:

For more details, see the Glow Integration Guide.

API Overview

Hataraku provides several core components:

  • Task: Create and execute AI-powered tasks
  • Agent: Build autonomous coding agents
  • Workflow: Orchestrate complex multi-step operations
  • Tools: Integrate custom capabilities and external services

For detailed API documentation, see the Types Documentation.

Documentation

Examples

The package includes various examples in the /examples directory demonstrating different features:

  • Basic task execution
  • Streaming responses
  • Schema validation
  • Multi-step workflows
  • Tool integration
  • Thread management

These examples are available for reference in the repository and can be examined to understand different use cases and implementation patterns.

See the examples README for more details.

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT License - see the LICENSE file for details.

Support