Tanso
Use tanso to explore Chinese internet signals through provider APIs and return source-backed answers. Prefer --json for agent workflows.
Before Running
Check availability:
tanso version
tanso config show --json
If tanso is missing and the user asked for setup, install it:
npm install -g @geekjourneyx/tanso
Never print .env, API keys, bearer tokens, raw config files, or CI secrets. Treat redacted config values as expected.
Choose A Source
Use the narrowest source that matches the task:
| Need | Command |
|---|---|
| Multi-source default search | tanso "<query>" --json --limit 5 |
| All search and answer sources | tanso all "<query>" --json --limit 5 |
| Broad web evidence | tanso bocha "<query>" --json --limit 5 |
| Web-grounded direct answer | tanso volc "<query>" --json --limit 1 |
| Zhihu opinions and discussions | tanso zhihu "<query>" --json --limit 5 |
| Zhihu-backed global web search | tanso zhihu web "<query>" --json --limit 5 |
| Current Zhihu hotlist | tanso zhihu hot --json |
| Available source IDs | tanso sources --json |
Use Zhihu for opinion-rich questions, Bocha for broad corroboration, Volcengine for synthesized direct answers, and hotlist for current attention.
Use tanso --help or tanso <command> --help to inspect the installed command surface before assuming a command exists.
For Zhihu global search only, filters are valid:
tanso zhihu web "<query>" --filter 'host=="example.com"' --search-db realtime --json
Research Workflow
- Rewrite the user request into 2-5 concrete Chinese queries with aliases, product names, and time qualifiers when useful.
- Start with
--limit 3to--limit 5; increase only when coverage is weak. - Inspect
status,results,source_status, anderrorsin JSON output. - Cross-check important claims across sources before presenting them as facts.
- Separate source claims from your inference. Mention provider failures when they reduce confidence.
Answer Shape
For research answers:
**Conclusion**
One concise answer.
**Evidence**
- Source, title, URL, key point.
- Source, title, URL, key point.
**Assessment**
What is likely true, what is uncertain, and what to verify next.
For topic discovery:
**Topic Candidates**
1. Topic: why it matters, source signal, suggested angle.
2. Topic: why it matters, source signal, suggested angle.
**Counterintuitive Point**
What contradicts common assumptions.
**Next Step**
Exact follow-up searches or validation steps.
Failure Handling
| Signal | Action |
|---|---|
credential_missing or exit 4 |
Check redacted config; ask for the relevant provider key if needed. |
Exit 2 |
Remove incompatible flags and rerun the simplest valid command. |
Exit 5 |
Retry once with a smaller limit, then switch provider. |
Exit 6 |
Narrow the query and reduce --limit. |
Exit 7 |
Rewrite with alternate Chinese terms or broaden to Bocha/Zhihu global search. |
When one provider fails, continue with configured alternatives if the user asked for research rather than debugging.
Guardrails
- Do not scrape browsers or websites when a Tanso provider can answer the task.
- Do not use
--filteror--search-dboutsidetanso zhihu web. - Do not treat
tanso sources --jsonas proof that credentials work;configuredonly means local credential material is present. - Do not present one provider's output as verified fact when sources conflict.
- Do not expand a narrow question into broad trend research unless the user asks for topic discovery.