Automated summary
This skill performs web research using the Exa API directly via curl, avoiding token usage for Claude Code.
Strengths
- Saves Claude tokens by using an external API.
- Produces structured research files (in-progress and final).
- Asks clarifying questions to refine the research.
- Includes sources and links in the final report.
Limitations
- Requires an Exa API key and curl to be installed.
- Result quality depends on Exa's search capabilities.
- No real-time updates once the file is created.
Use when you need thorough research without consuming Claude Code tokens.
Avoid if the Exa API is unavailable or if the research topic requires real-time interaction.
Security analysis
CautionThe skill instructs running curl with an API key loaded from an encrypted file using sops, which is a legitimate network call for research purposes. There is no destructive action or obfuscation, but the use of Bash and network access to an external service introduces moderate risk if the AI's behavior is altered by malicious input.
- β’Uses Bash and curl to call external API (exa.ai) with a secret API key decrypted from an encrypted file, which could be misused for data exfiltration if prompt injection overwrites the query.
Examples
/freesearch AI coding tools with persistent memoryFree research on quantum computing breakthroughs 2025Research climate change impacts on agriculture without burning tokensname: freesearch description: TRULY FREE research via Exa API - zero Claude tokens. Uses Exa directly, no Gemini CLI wrapper. homepage: https://github.com/Khamel83/oneshot allowed-tools: Read, Write, Edit, Bash metadata: {"oneshot":{"emoji":"π","requires":{"bins":["curl"]}}}
/freesearch - TRULY FREE Research
Uses 0 Claude Code tokens. Calls Exa API directly via curl.
When To Use
User says:
/freesearch [topic]- Slash command- "Free research on [topic]"
- "Research without burning tokens"
How It Works
Direct API calls via curl:
- Ask 2-3 clarifying questions (goal, depth, audience)
- Create
docs/research/{date}_{topic}_in_progress.md - Search Exa API:
- web search for overview
- code search for technical details
- company/person search if relevant
- Update in-progress file with raw results
- Create
docs/research/{date}_{topic}_final.mdwith:- Executive summary
- Key findings
- Sources with links
- Related topics
- Return file path to Claude for reading
Exa API Configuration
The EXA_API_KEY is loaded from encrypted secrets:
# Decrypt and load key (done via skill wrapper)
EXA_KEY=$(sops --decrypt --output-type json ~/github/oneshot/secrets/research_keys.json.encrypted | grep -o '"EXA_API_KEY": "[^"]*"' | cut -d'"' -f4)
API Endpoint: https://api.exa.ai/search
Research Prompt Template
curl -s -X POST 'https://api.exa.ai/search' \
-H "x-api-key: $EXA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "[TOPIC]",
"type": "auto",
"numResults": 10,
"contents": {
"text": {
"maxCharacters": 20000
}
}
}'
Output Locations
Project research files:
docs/research/{YYYY-MM-DD}_{topic_slug}_in_progress.md
docs/research/{YYYY-MM-DD}_{topic_slug}_final.md
Historical research:
research/{topic_slug}/research.md
Quick Wins to Implement
Based on competitor research, these features should be added to ONE_SHOT:
/browsecommand - Visual skill discovery with fuzzy searchbd testframework - Skill testing framework- Diff preview - Show changes before applying
- Skill analytics - Track most-used skills
Example Usage
User says: /freesearch AI coding tools with persistent memory
You do:
-
Ask clarifying questions:
- "What's your goal?"
- "How deep should I go?"
-
Create in-progress file with initial query
-
Search Exa API:
web_search_exa: "AI coding tools persistent memory cross-session"get_code_context_exa: "AI coding task orchestration memory"
-
Update in-progress file with findings
-
Create final report with executive summary
-
Return:
Key findings: - MCP Task Orchestrator, Cipher, Pieces AI Memory, Cursor Rules - All use RAG + vector stores for persistent context π Full research: docs/research/2025-01-31_ai_persistent_memory_final.md
File Format Template
In-Progress Template
# Research: {Topic}
**Started:** {timestamp}
**Status:** In Progress
## Search Queries Used
- {query1}
- {query2}
## Raw Results
### Source 1
- **URL:** {url}
- **Title:** {title}
- **Snippet:** {content}
### Source 2
- **URL:** {url}
- **Title:** {title}
- **Snippet:** {content}
## Initial Notes
{ongoing analysis}
Final Template
# Research: {Topic}
**Completed:** {timestamp}
**Duration:** {duration}
## Executive Summary
{2-3 sentence overview}
## Key Findings
1. {finding with citation}
2. {finding with citation}
## Sources
1. [{Title}]({url}) - {description}
2. [{Title}]({url}) - {description}
## Related Topics
- {topic for further research}
## Full Details
{detailed analysis}
---
π **In-progress research:** docs/research/{date}_{topic}_in_progress.md
Why This Exists
The deep-research skill wraps Gemini CLI in a Claude sub-agent, which still burns tokens. This skill calls Exa API directly via curl:
- β 0 Claude Code tokens for research
- β Only main conversation tokens (clarifying questions, summary)
- β Same quality research (Exa's neural search)
- β
Saves to project
docs/research/(tracked in git)
Tips
- Research takes 10-30 seconds (Exa is fast)
- Always save to
docs/research/NOT~/github/oneshot/research/ - Include user's goal in the prompt for better results
- Link in-progress file in final report for drill-down
Keywords
free research, exa api, zero tokens, web search, research save
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/free-research-via-exa-api-mm5t8b7w/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/free-research-via-exa-api-mm5t8b7w' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/free-research-via-exa-api-mm5t8b7w/download' --output '.skill-downloads/free-research-via-exa-api-mm5t8b7w/SKILL.md.part' && mv '.skill-downloads/free-research-via-exa-api-mm5t8b7w/SKILL.md.part' '.skill-downloads/free-research-via-exa-api-mm5t8b7w/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Read, Write, Edit, Bash
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/free-research-via-exa-api-mm5t8b7w/SKILL.md' && test -s '.skill-downloads/free-research-via-exa-api-mm5t8b7w/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/freesearch' && cp -R '.skill-downloads/free-research-via-exa-api-mm5t8b7w' '.claude/skills/freesearch'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js β₯ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/free-research-via-exa-api-mm5t8b7w'openskills read 'free-research-via-exa-api-mm5t8b7w'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/free-research-via-exa-api-mm5t8b7w/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
PDF Reader
Productivity
Read and extract text from PDF files, including documents, reports, contracts, and spreadsheets. Works with local files, URLs, and WhatsApp attachments. Use whenever PDF content is needed, even if not explicitly requested.
Discord Messaging Workflows
Productivity
Use the message tool to send, edit, and moderate Discord messages with interactive components.
Interactive Verdict Preview
Productivity
Generate an interactive HTML preview of keep/drop verdicts for maintainer review, then process the pasted feedback JSON.