### Ahi Configuration File (ahi.yaml) Source: https://github.com/upstash/ahi/blob/main/README.md Example configuration for an Ahi project, defining tool paths, skill entrypoints, environment variables, setup commands, and agent definitions with schedules. ```yaml tools: ./tools/ skills: ./skills/SKILL.md env: BRAVE_API_KEY: # forwarded from local .env NODE_ENV: production # explicit value setup: - npm install agents: - name: my-agent harness: claude-code model: anthropic/claude-sonnet-4-6 schedules: - cron: "0 9 * * *" prompt: "Do your daily task" timeout: 300000 # optional; defaults to /workspace/home folder: /workspace/home ``` -------------------------------- ### Install and Initialize Upstash AHI CLI Source: https://github.com/upstash/ahi/blob/main/blog-agent-server.md Installs the Upstash AHI CLI globally and initializes a new project. ```bash npm install -g @upstash/ahi ahi init ``` -------------------------------- ### Ahi Installation and Usage Source: https://github.com/upstash/ahi/blob/main/blog.md Install the Ahi CLI globally and use commands to initialize a project, test agents locally, apply changes to the remote environment, and run agents remotely. ```bash npm install -g @upstash/ahi ahi init ahi dev "do something useful" # test locally ahi apply # apply project state to the box ahi run "do something useful" # run remotely ``` -------------------------------- ### Install Ahi CLI Source: https://github.com/upstash/ahi/blob/main/README.md Install the Ahi command-line interface globally using npm. ```bash npm install -g @upstash/ahi ``` -------------------------------- ### Ahi Project Structure Example Source: https://github.com/upstash/ahi/blob/main/blog.md Illustrates the conventional folder structure for an Ahi project, including tools, skills, and data directories. ```yaml botstreet/ ├── ahi.yaml ├── tools/ │ ├── trade.ts │ ├── portfolio.ts │ ├── prices.ts │ ├── snapshot.ts │ └── search.ts ├── skills/ │ └── SKILL.md └── data/ ├── portfolio.json └── memory.md ``` -------------------------------- ### Ahi Quick Start Commands Source: https://github.com/upstash/ahi/blob/main/README.md Commands to initialize a new Ahi project, set up environment variables, run an agent locally, apply project state, and run an agent remotely. ```bash ahi init # scaffold project structure cp .env.example .env # add your API keys ahi dev "remember to buy milk" # run agent locally ahi apply # apply project state to the box ahi run "list my notes" # run remotely ``` -------------------------------- ### Ahi Configuration Example Source: https://github.com/upstash/ahi/blob/main/blog.md Defines Ahi agents, specifying the paths for tools and skills, and mapping them to agents. ```yaml tools: ./tools/ skills: ./skills/SKILL.md agents: ``` -------------------------------- ### Run an Agent with Upstash AHI CLI Source: https://github.com/upstash/ahi/blob/main/blog-agent-server.md Starts a development server for an agent with a specific task description. ```bash ahi dev "Research the latest AI news and save today's summary" ``` -------------------------------- ### Configure Multi-Model Agents Source: https://context7.com/upstash/ahi/llms.txt Set up multiple agents using different LLM models but sharing the same tools and skills. This configuration is for the Botstreet example. ```yaml # ahi.yaml — three competing agents, same tools/skills, different models tools: ./tools/ skills: ./skills/SKILL.md agents: - name: botstreet-claude harness: claude-code model: anthropic/claude-opus-4-6 schedules: - cron: "30 14 * * 1-5" prompt: "Run daily trading analysis, research market news, make trades, and save a snapshot" timeout: 600000 - name: botstreet-gemini harness: claude-code model: openrouter/google/gemini-3.1-pro-preview schedules: - cron: "30 14 * * 1-5" prompt: "Run daily trading analysis, research market news, make trades, and save a snapshot" timeout: 600000 - name: botstreet-openai harness: codex model: openai/gpt-5.4 schedules: - cron: "30 14 * * 1-5" prompt: "Run daily trading analysis, research market news, make trades, and save a snapshot" timeout: 600000 ``` -------------------------------- ### Deploy Project Remotely (`ahi apply`) Source: https://context7.com/upstash/ahi/llms.txt Uploads project assets (tools, skills, env vars, setup commands, schedules) to remote agent boxes. Creates boxes if they don't exist. Local root files like `CLAUDE.md` and `AGENTS.md` are not uploaded. ```bash # Deploy all agents defined in ahi.yaml ahi apply # Expected output: # Applying local project to agent my-agent... # Using existing box box_abc123 # ✔ Uploaded 12 files # ✔ Wrote 2 env var(s) to box # ✔ Ran 1 setup command(s) # ✔ Applied 1 schedule(s) # my-agent updated. # # Applied local project to all agents. # Required environment variable: export UPSTASH_BOX_API_KEY="your_key_here" # Agent API keys are resolved by model prefix: # anthropic/... → ANTHROPIC_API_KEY # openai/... → OPENAI_API_KEY # openrouter/...→ OPENROUTER_API_KEY # opencode/... → OPENCODE_API_KEY ``` -------------------------------- ### Run Daily News Researcher Source: https://github.com/upstash/ahi/blob/main/examples/daily-news-researcher/README.md Execute the daily news researcher project. This command starts the agent to research a topic and save a summary. Inspect the output file afterwards. ```bash cd examples/daily-news-researcher ahi dev "Research the latest AI news and save today's summary." cat data/daily-summary.md ``` -------------------------------- ### Botstreet Agent Configuration Source: https://github.com/upstash/ahi/blob/main/README.md Example YAML configuration for the Botstreet project, defining three agents with different models and schedules. Each agent is configured to run daily trading analysis. ```yaml tools: ./tools/ skills: ./skills/SKILL.md agents: - name: botstreet-claude harness: claude-code model: anthropic/claude-opus-4-6 schedules: - cron: "30 14 * * 1-5" prompt: "Run daily trading analysis, research market news, make trades, and save a snapshot" timeout: 600000 - name: botstreet-gemini harness: claude-code model: openrouter/google/gemini-3.1-pro-preview schedules: - cron: "30 14 * * 1-5" prompt: "Run daily trading analysis, research market news, make trades, and save a snapshot" timeout: 600000 - name: botstreet-openai harness: codex model: openai/gpt-5.4 schedules: - cron: "30 14 * * 1-5" prompt: "Run daily trading analysis, research market news, make trades, and save a snapshot" timeout: 600000 ``` -------------------------------- ### Run Ahi Dev Command Source: https://github.com/upstash/ahi/blob/main/README.md Executes an agent locally using the installed CLI. Use `--agent` to specify a particular agent from `ahi.yaml`. ```bash ahi dev "save a note about the meeting" ``` ```bash ahi dev "list my notes" --agent my-agent ``` -------------------------------- ### Run Agent Locally (`ahi dev`) Source: https://context7.com/upstash/ahi/llms.txt Runs an agent locally using the installed CLI. Automatically detects the harness based on available CLIs and root instruction files. It mirrors nested skill packages into the harness-native skill directory before launching. ```bash # Basic local run — auto-detects harness from installed CLIs and root instruction files ahi dev "remember to buy milk" # Emulate a specific configured agent from ahi.yaml ahi dev "list my notes" --agent my-agent # Expected output: # Running agent local locally # Harness: claude-code | Model: local default # # ``` -------------------------------- ### Ahi Configuration Schema Source: https://github.com/upstash/ahi/blob/main/plan.md Defines the schema for the `ahi.yaml` configuration file, specifying tool paths, skill files, setup commands, and agent definitions. ```yaml tools: ./tools/ skills: ./skills/SKILL.md setup: - pnpm install --frozen-lockfile agents: - name: agent-name model: claude-opus-4.6 ``` -------------------------------- ### Ahi Project Configuration (`ahi.yaml`) Source: https://context7.com/upstash/ahi/llms.txt The central configuration file for an Ahi project. Defines paths for tools and skills, environment variables, setup commands, and agent definitions including harness, model, and schedules. ```yaml # ahi.yaml tools: ./tools/ skills: ./skills/SKILL.md env: BRAVE_API_KEY: # forwarded from local .env (empty value = forward) NODE_ENV: production # explicit value written directly to box setup: - npm install # runs on the box after each ahi apply agents: - name: my-agent harness: claude-code # claude-code | codex | opencode model: anthropic/claude-sonnet-4-6 # anthropic/ | openai/ | openrouter/ | opencode/ schedules: - cron: "0 9 * * *" prompt: "Do your daily task" timeout: 300000 # milliseconds; optional folder: /workspace/home # optional; defaults to /workspace/home - name: my-gpt-agent harness: codex model: openai/gpt-5.4 - name: my-gemini-agent harness: claude-code model: openrouter/google/gemini-3.1-pro-preview ``` -------------------------------- ### Ahi Config Fields Source: https://github.com/upstash/ahi/blob/main/README.md Key configuration fields for an Ahi project, specifying paths for tools, skills, environment variables, setup commands, and agent definitions. ```markdown | Field | Required | Description | | -------- | -------- | ------------------------------------------------------------------------------ | | `tools` | yes | Path to tools directory | | `skills` | yes | Path to skill file | | `env` | no | Env vars to write inside the box. Empty value = forward from local environment | | `setup` | no | Commands to run on the box after file upload (e.g. `npm install`) | | `agents` | yes | List of agent definitions | ``` -------------------------------- ### Initialize New Ahi Project Source: https://context7.com/upstash/ahi/llms.txt Scaffolds a new Ahi project with a standard directory structure and sample files. Skips scaffolding if `ahi.yaml` already exists. ```bash ahi init # Output: # Initialized Ahi project: # ahi.yaml # .env.example # CLAUDE.md # AGENTS.md # tools/note.ts # skills/SKILL.md # data/ # Resulting structure: # my-project/ # ├── ahi.yaml # agent and schedule definitions # ├── CLAUDE.md # local Claude Code development guidance # ├── AGENTS.md # local Codex/OpenCode development guidance # ├── .env.example # API key template # ├── tools/note.ts # sample tool script # ├── skills/SKILL.md # runtime skill (system prompt) # └── data/ # durable agent state ``` -------------------------------- ### Deploy Agent with Upstash Box SDK Source: https://github.com/upstash/ahi/blob/main/blog-agent-server.md Use the Box SDK to create an agent, upload files, and set up a schedule. This script also demonstrates how to run the agent immediately and stream its output. ```typescript // deploy.ts import { Box } from "@upstash/box"; const API_KEY = process.env.UPSTASH_BOX_API_KEY!; async function deploy() { // Create a box with an agent const box = await Box.create({ apiKey: API_KEY, name: "news-researcher", runtime: "node", agent: { provider: "claude", model: "claude-sonnet-4-6", }, }); // Upload the tool and skill await box.files.upload([ { path: "tools/news-summary.ts", destination: "/workspace/home/tools/news-summary.ts" }, { path: "skills/SKILL.md", destination: "/workspace/home/skills/SKILL.md" }, ]); // Schedule a daily run at 9am UTC await box.schedule.agent({ cron: "0 9 * * *", prompt: "Research the latest AI news and save today's one-sentence summary.", timeout: 300000, }); console.log("Deployed. The agent will run every day at 9am UTC."); // Or run it right now const stream = await box.agent.stream({ prompt: "Research the latest AI news and save today's one-sentence summary.", }); for await (const chunk of stream) { if (chunk.type === "text-delta") { process.stdout.write(chunk.text); } } } deploy(); ``` -------------------------------- ### Recommended Ahi Skills Directory Structure Source: https://github.com/upstash/ahi/blob/main/README.md Illustrates a recommended structure for organizing multiple skill packages within the `skills/` directory. Nested skill packages are treated as reusable components. ```text skills/ ├── SKILL.md ├── notes/ │ ├── SKILL.md │ └── templates/ └── research/ ├── SKILL.md └── references/ ``` -------------------------------- ### Skill Package Structure Source: https://context7.com/upstash/ahi/llms.txt Illustrates a nested directory structure for organizing multiple agent skills, where each subdirectory contains a 'SKILL.md' file. ```text skills/ ├── SKILL.md # primary router — reference nested packages ├── notes/ │ ├── SKILL.md # notes skill package │ └── templates/ └── research/ ├── SKILL.md # research skill package └── references/ ``` -------------------------------- ### Ahi Init Scaffold Structure Source: https://github.com/upstash/ahi/blob/main/plan.md Illustrates the default directory and file structure created by the `ahi init` command for a new Ahi project. ```markdown my-project/ ├── ahi.yaml # single agent, placeholder model ├── .env.example # example environment variables ├── tools/ │ └── note.ts # simple durable note tool ├── skills/ │ └── SKILL.md # starter note-keeper skill └── data/ # empty, .gitkeep ``` -------------------------------- ### Configure Environment Variables for Ahi Source: https://context7.com/upstash/ahi/llms.txt Set up necessary API keys for different LLM providers in a `.env` file. These variables are automatically loaded by Ahi commands. ```bash # .env file — loaded automatically by all ahi commands UPSTASH_BOX_API_KEY=upstash_box_xxx ANTHROPIC_API_KEY=sk-ant-xxx OPENAI_API_KEY=sk-xxx OPENROUTER_API_KEY=sk-or-xxx ``` -------------------------------- ### Ahi CLI Commands Source: https://github.com/upstash/ahi/blob/main/blog.md Scaffold project structure, run agents locally for fast iteration, execute agents remotely, apply project changes, and access the monitoring dashboard. ```bash ahi init # scaffold the folder structure ahi dev "prompt" # run an agent locally — fast iteration ahi run "prompt" # run an agent remotely on the box ahi apply # apply project files and schedules to the box ahi console # open the monitoring dashboard ``` -------------------------------- ### Ahi CLI Commands Overview Source: https://github.com/upstash/ahi/blob/main/plan.md Lists the available commands for the Ahi CLI tool, including scaffolding, local development, remote execution, deployment, and console access. ```markdown | Command | Description | |---------|-------------| | `ahi init` | Scaffold the folder structure (tools/, skills/, data/, ahi.yaml) | | `ahi dev "prompt"` | Run an agent locally — fast iteration, no Box involved | | `ahi run "prompt"` | Run an agent remotely on the Box, stream output back | | `ahi apply` | Apply local project state to all agent boxes | | `ahi console` | Open the monitoring dashboard | ``` -------------------------------- ### Run Agent Prompt Source: https://github.com/upstash/ahi/blob/main/README.md Executes an agent with a given prompt on a remote box and streams the output. Optionally specify an agent name. ```bash ahi run "analyze today's data" ahi run "generate report" --agent my-agent ``` -------------------------------- ### Box SDK Key Methods for Ahi Source: https://github.com/upstash/ahi/blob/main/plan.md Highlights essential methods from the `@upstash/box` SDK that are utilized by the Ahi framework for managing agents and their environments. ```markdown - `Box.create(config)` — create a box with agent, runtime, env, skills, mcpServers - `Box.get(boxId)` — reconnect to existing box - `Box.list()` — list all boxes - `box.agent.run({ prompt })` / `box.agent.stream({ prompt })` — run agent - `box.fs.upload(files)` / `box.fs.list(path)` / `box.fs.read(path)` / `box.fs.download(files) - `box.schedule.createPrompt(opts)` / `box.schedule.createExec(opts)` / `box.schedule.list()` - `box.exec.command(cmd)` / `box.exec.stream(cmd) - `box.pause()` / `box.resume()` / `box.delete() - Auth: `UPSTASH_BOX_API_KEY` env var or `apiKey` param ``` -------------------------------- ### Manage Multi-Model Agents with Ahi CLI Source: https://context7.com/upstash/ahi/llms.txt Commands for deploying multiple agents simultaneously and running prompts across them. Use `ahi apply` to deploy all agents. ```bash # Deploy all three agents at once ahi apply # Run the same prompt across all agents in parallel ahi run "summarize your portfolio performance" # Pull data from a specific agent ahi pull-data --agent botstreet-claude ``` -------------------------------- ### Ahi CLI Commands Source: https://github.com/upstash/ahi/blob/main/blog-agent-server.md Manage agent deployments and runs using the Ahi CLI. ```bash ahi apply # Apply tools, skills, and schedules to the box ahi run "Research the latest AI news" # Run immediately ahi console # Monitor runs, logs, files, schedules ``` -------------------------------- ### Ahi CLI Configuration Source: https://github.com/upstash/ahi/blob/main/blog-agent-server.md Define agent projects using a folder structure and a YAML configuration file for tools, skills, and schedules. ```yaml # ahi.yaml tools: ./tools/ skills: ./skills/SKILL.md agents: - name: news-researcher model: claude-sonnet-4-6 schedules: - cron: "0 9 * * *" prompt: "Research the latest AI news and save today's one-sentence summary." timeout: 300000 ``` -------------------------------- ### Manage Scheduled Agents with Ahi CLI Source: https://context7.com/upstash/ahi/llms.txt Commands for local testing, deployment, and manual triggering of scheduled agents. Use `ahi dev` for local testing and `ahi apply` to deploy. ```bash # Test locally before deploying cd examples/daily-news-researcher cp .env.example .env # add ANTHROPIC_API_KEY ahi dev "Research the latest AI news and save today's summary." cat data/daily-summary.md # Deploy to run on schedule ahi apply # Manually trigger a remote run ahi run "Research the latest AI news and save today's summary." # Pull saved summaries back locally ahi pull-data cat data/daily-summary.md ``` -------------------------------- ### Configure a Daily News Research Agent Source: https://context7.com/upstash/ahi/llms.txt Define a scheduled agent that runs daily to research AI news and save a summary. Ensure ANTHROPIC_API_KEY is set in your environment. ```yaml # examples/daily-news-researcher/ahi.yaml tools: ./tools/ skills: ./skills/SKILL.md agents: - name: daily-news-researcher harness: claude-code model: anthropic/claude-sonnet-4-6 schedules: - cron: "0 14 * * *" # runs every day at 14:00 UTC prompt: "Research the latest AI news and save today's one-sentence summary." timeout: 300000 # 5 minutes ``` -------------------------------- ### Run Prompt on Remote Agent Source: https://context7.com/upstash/ahi/llms.txt Execute a prompt against a deployed agent on Upstash Box and stream output. Can target a specific agent or run on all agents in parallel. ```bash ahi run "analyze today's data" ``` ```bash ahi run "generate report" --agent my-agent ``` ```bash ahi run "summarize your notes" ``` -------------------------------- ### TypeScript Durable Notes Tool Source: https://context7.com/upstash/ahi/llms.txt A sample TypeScript tool for managing durable notes. It handles adding, listing, and clearing notes stored in a local file. Agents invoke this tool via shell commands. ```typescript // tools/note.ts — sample durable notes tool import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; import { resolve } from "path"; const command = process.argv[2]; const text = process.argv.slice(3).join(" ").trim(); const dataDir = resolve(process.cwd(), "data"); const notesPath = resolve(dataDir, "notes.md"); function ensureDataDir() { mkdirSync(dataDir, { recursive: true }); } function readNotes(): string[] { if (!existsSync(notesPath)) return []; const content = readFileSync(notesPath, "utf8").trim(); if (!content) return []; return content.split("\n").filter(Boolean).map((line) => line.replace(/^- /, "")); } function writeNotes(notes: string[]) { const content = notes.length > 0 ? notes.map((note) => `- ${note}`).join("\n") + "\n" : ""; writeFileSync(notesPath, content); } ensureDataDir(); switch (command) { case "add": { const notes = readNotes(); notes.push(text); writeNotes(notes); console.log(`Saved note ${notes.length}: ${text}`); break; } case "list": { const notes = readNotes(); if (notes.length === 0) { console.log("No notes saved."); break; } console.log(notes.map((note, i) => `${i + 1}. ${note}`).join("\n")); break; } case "clear": writeNotes([]); console.log("Cleared all notes."); break; default: console.log("Usage: npx tsx tools/note.ts [text]"); } // Agent invokes tools via: // npx tsx /workspace/home/tools/note.ts add "buy oat milk" // npx tsx /workspace/home/tools/note.ts list // npx tsx /workspace/home/tools/note.ts clear ``` -------------------------------- ### List Saved Summaries with News Researcher Tool Source: https://github.com/upstash/ahi/blob/main/examples/daily-news-researcher/skills/SKILL.md Execute this command to retrieve a list of all previously saved news summaries. ```bash npx tsx /workspace/home/tools/news-summary.ts list ``` -------------------------------- ### News Summary Tool (TypeScript) Source: https://github.com/upstash/ahi/blob/main/blog-agent-server.md A TypeScript tool script for managing dated news summaries in a file. It uses Node.js built-ins and accepts commands like 'save', 'list', and 'latest' via process arguments. ```typescript // tools/news-summary.ts import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; import { resolve } from "path"; const command = process.argv[2]; const date = process.argv[3]; const summary = process.argv.slice(4).join(" ").trim(); const dataDir = resolve(process.cwd(), "data"); const summaryPath = resolve(dataDir, "daily-summary.md"); mkdirSync(dataDir, { recursive: true }); function readEntries(): string[] { if (!existsSync(summaryPath)) return []; const content = readFileSync(summaryPath, "utf8").trim(); return content ? content.split("\n").filter(Boolean).map((l) => l.replace(/^- /, "")) : []; } function writeEntries(entries: string[]) { writeFileSync(summaryPath, entries.map((e) => `- ${e}`).join("\n") + "\n"); } switch (command) { case "save": { const entries = readEntries(); const entry = `${date}: ${summary}`; const existing = entries.findIndex((e) => e.startsWith(`${date}: `)); if (existing >= 0) entries[existing] = entry; else entries.push(entry); writeEntries(entries); console.log(`Saved summary for ${date}.`); break; } case "list": console.log(readEntries().join("\n") || "No summaries saved."); break; case "latest": { const entries = readEntries(); console.log(entries[entries.length - 1] || "No summaries saved."); break; } default: console.log("Usage: npx tsx tools/news-summary.ts [args]"); } ``` -------------------------------- ### Ahi Skills Configuration Source: https://github.com/upstash/ahi/blob/main/README.md Defines the primary runtime skill file for an Ahi project. This path is the source of truth for deployed runtime behavior. ```yaml skills: ./skills/SKILL.md ``` -------------------------------- ### Push Agent Data Source: https://github.com/upstash/ahi/blob/main/README.md Uploads the local data directory to the agent's box. Supports specifying an agent or uploading all data. ```bash ahi push-data ahi push-data --agent my-agent ahi push-data --all ``` -------------------------------- ### Notes Skill Markdown Source: https://context7.com/upstash/ahi/llms.txt Defines a 'notes' skill for an agent, including its identity, available tools (add, list, clear), and processing logic. This Markdown file serves as the agent's system prompt. ```markdown --- name: notes description: Save, review, and clear simple notes for the user --- # Notes Skill ## Identity You are a simple note-keeping agent. Your job is to help the user save short notes to durable storage, review what is already saved, and clear the list when asked. ## Tools Save a note: ``` npx tsx /workspace/home/tools/note.ts add ``` List saved notes: ``` npx tsx /workspace/home/tools/note.ts list ``` Clear all notes: ``` npx tsx /workspace/home/tools/note.ts clear ``` ## Process 1. If the user wants to remember something, save it with the note tool. 2. If the user asks what is saved, list the notes first and then answer. 3. If the user asks to remove everything, use the clear command. 4. Keep responses short and explicit about what you saved or retrieved. ``` -------------------------------- ### Daily News Researcher Skill (Markdown) Source: https://github.com/upstash/ahi/blob/main/blog-agent-server.md A Markdown file defining the 'daily-news-researcher' agent's identity, available tools, and operational process. It instructs the agent on how to research, summarize, and save news. ```markdown --- name: daily-news-researcher description: Research one news topic and save a one-sentence summary each day --- # Daily News Researcher ## Identity You are a daily news research agent. Your job is to research the assigned topic, identify the most important new development, and save a single concise summary sentence. ## Tools Save a dated summary: ``` npx tsx /workspace/home/tools/news-summary.ts save ``` List saved summaries: ``` npx tsx /workspace/home/tools/news-summary.ts list ``` Show the latest saved summary: ``` npx tsx /workspace/home/tools/news-summary.ts latest ``` ## Process 1. Research the requested topic using your available capabilities. 2. Focus on developments that are genuinely new for the current date. 3. Write exactly one sentence in plain language. 4. Save the sentence with today's date. 5. Don't duplicate a sentence if it's already saved for today. ``` -------------------------------- ### Ahi Project Structure Convention Source: https://github.com/upstash/ahi/blob/main/README.md Standard directory layout for an Ahi project, including configuration, agent definitions, tools, skills, and data storage. ```plaintext my-project/ ├── ahi.yaml # agent definitions ├── CLAUDE.md # local Claude development guidance ├── AGENTS.md # local Codex/OpenCode development guidance ├── .env # API keys ├── tools/ # scripts agents execute ├── skills/ # reusable workflow instructions and native skill source └── data/ # durable files managed by the agent ``` -------------------------------- ### Show Latest Saved Summary with News Researcher Tool Source: https://github.com/upstash/ahi/blob/main/examples/daily-news-researcher/skills/SKILL.md Use this command to display the most recently saved news summary. ```bash npx tsx /workspace/home/tools/news-summary.ts latest ``` -------------------------------- ### Save Dated Summary with News Researcher Tool Source: https://github.com/upstash/ahi/blob/main/examples/daily-news-researcher/skills/SKILL.md Use this command to save a dated summary of a news topic. Ensure the date is in YYYY-MM-DD format and the summary is a single concise sentence. ```bash npx tsx /workspace/home/tools/news-summary.ts save ``` -------------------------------- ### Pull Agent Data Source: https://github.com/upstash/ahi/blob/main/README.md Downloads the agent's data directory from the box to the local project. Can be used with a specific agent name. ```bash ahi pull-data ahi pull-data --agent my-agent ``` -------------------------------- ### Ahi Agent Fields Source: https://github.com/upstash/ahi/blob/main/README.md Defines the fields required for agent configurations within Ahi, including name, model, harness, and optional schedules. ```markdown | Field | Required | Description | | ----------- | -------- | ------------------------------------------------------------------------ | | `name` | yes | Agent name (also the box name) | | `model` | yes | Model identifier (for example `anthropic/claude-sonnet-4-6`, `openai/gpt-5.4`, `openrouter/google/gemini-3.1-pro-preview`) | | `harness` | yes | Runner to use for the agent: `claude-code`, `codex`, or `opencode` | | `schedules` | no | Cron schedules with prompt, optional timeout, and optional folder override | ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.