Skip to content

feat: add Qiita, note.com adapters & Bluesky search-posts, fix macOS Browser Bridge#529

Open
lhzxbsdr wants to merge 5 commits intojackwener:mainfrom
lhzxbsdr:main
Open

feat: add Qiita, note.com adapters & Bluesky search-posts, fix macOS Browser Bridge#529
lhzxbsdr wants to merge 5 commits intojackwener:mainfrom
lhzxbsdr:main

Conversation

@lhzxbsdr
Copy link
Copy Markdown

Description

Add three new platform adapters for cold-start user discovery across Japanese and decentralized social platforms, plus fix a Browser Bridge bug on macOS.

New adapters

  • Qiita — search, user, articles (public API v2, no auth)
  • note.com — search (cookie/DOM), user, articles (public API)
  • Bluesky — search-posts (public AT Protocol API, complements existing actor search)

Bug fix

  • Browser Bridge macOS: Fix "Invalid value for state" error in chrome.windows.create() by separating window creation from state change. Chrome on macOS disallows setting state together with focused/width/height in one call.

Type of Change

  • 🌐 New site adapter
  • 🐛 Bug fix

Checklist

  • I ran the checks relevant to this PR
  • I updated tests or docs if needed
  • I included output or screenshots when useful

Documentation (if adding/modifying an adapter)

  • Added doc page under docs/adapters/ (if new adapter)
  • Updated docs/adapters/index.md table (if new adapter)
  • Updated sidebar in docs/.vitepress/config.mts (if new adapter)
  • Updated README.md / README.zh-CN.md when command discoverability changed
  • Used positional args for the command's primary subject unless a named flag is clearly better
  • Normalized expected adapter failures to CliError subclasses instead of raw Error

Screenshots / Output

Qiita

$ opencli qiita search "ChatGPT" --limit 3
┌──────┬───────────────────────────────┬──────────────┬───────┬──────────────────────┬──────────────────────────────┐
│ Rank │ Title                         │ Author       │ Likes │ Tags                 │ Url                          │
├──────┼───────────────────────────────┼──────────────┼───────┼──────────────────────┼──────────────────────────────┤
│ 1    │ Jupyter Notebookで親ディレ... │ maskot1977   │ 0     │ Python, ChatGPT      │ https://qiita.com/maskot1... │
│ 2    │ OWASP MCP Top 10が出る前に... │ murata-seiji │ 0     │ Security, owasp, MCP │ https://qiita.com/murata-... │
│ 3    │ Claude Memory入門...          │ kai_kou      │ 0     │ Python, Claude       │ https://qiita.com/kai_kou... │
└──────┴───────────────────────────────┴──────────────┴───────┴──────────────────────┴──────────────────────────────┘

$ opencli qiita user jnchito
┌─────────┬─────────────┬──────────────────────┬───────────┬───────┬───────────────────────────┐
│ Id      │ Name        │ Bio                  │ Followers │ Items │ Url                       │
├─────────┼─────────────┼──────────────────────┼───────────┼───────┼───────────────────────────┤
│ jnchito │ Junichi Ito │ Rubyプログラマ...    │ 8200      │ 402   │ https://qiita.com/jnchito │
└─────────┴─────────────┴──────────────────────┴───────────┴───────┴───────────────────────────┘

$ opencli qiita articles jnchito --limit 3
┌──────┬─────────────────────────────────┬───────┬────────────┬──────────────────────────────┐
│ Rank │ Title                           │ Likes │ Created    │ Url                          │
├──────┼─────────────────────────────────┼───────┼────────────┼──────────────────────────────┤
│ 1    │ after_findでN+1問題が起きる     │ 3     │ 2026-03-26 │ https://qiita.com/jnchito... │
│ 2    │ Rubyのシンボルって何?          │ 13    │ 2026-02-05 │ https://qiita.com/jnchito... │
│ 3    │ Ruby 4.0で発生する差異について  │ 11    │ 2026-01-24 │ https://qiita.com/jnchito... │
└──────┴─────────────────────────────────┴───────┴────────────┴──────────────────────────────┘

Bluesky

$ opencli bluesky profile jay.bsky.team
┌───────────────┬────────┬───────────┬───────┬──────────────────────────────────────────────┐
│ Handle        │ Name   │ Followers │ Posts │ Description                                  │
├───────────────┼────────┼───────────┼───────┼──────────────────────────────────────────────┤
│ jay.bsky.team │ Jay 🦋 │ 596559    │ 4004  │ Founder & Chief Innovation Officer @ Bluesky │
└───────────────┴────────┴───────────┴───────┴──────────────────────────────────────────────┘

note.com

$ opencli note user masuyohasiri
┌──────────────┬───────────────────────┬──────────────────────────┬───────────┬──────────┬───────────────────────────────┐
│ Id           │ Name                  │ Bio                      │ Followers │ Articles │ Url                           │
├──────────────┼───────────────────────┼──────────────────────────┼───────────┼──────────┼───────────────────────────────┤
│ masuyohasiri │ 知的労働業務をなくす… │ 「地味に死ぬ業務を一瞬…  │ 90        │ 222      │ https://note.com/masuyohasiri │
└──────────────┴───────────────────────┴──────────────────────────┴───────────┴──────────┴───────────────────────────────┘

$ opencli note articles masuyohasiri --limit 3
┌──────┬──────────────────────────────┬───────┬────────────┬───────────────────────────────────────────────┐
│ Rank │ Title                        │ Likes │ Created    │ Url                                           │
├──────┼──────────────────────────────┼───────┼────────────┼───────────────────────────────────────────────┤
│ 1    │ GASでロジレスからスプレッド…  │ 12    │ 2023-12-24 │ https://note.com/masuyohasiri/n/nfbe75e14e213 │
│ 2    │ 03_コールとプット             │ 0     │ 2026-03-08 │ https://note.com/masuyohasiri/n/n9199dba31d58 │
│ 3    │ 02_オプションとは             │ 0     │ 2026-03-08 │ https://note.com/masuyohasiri/n/n84e883816039 │
└──────┴──────────────────────────────┴───────┴────────────┴───────────────────────────────────────────────┘

Browser Bridge fix

# Before fix:
$ opencli doctor
[FAIL] Connectivity: failed (Invalid value for state)

# After fix:
$ opencli doctor
[OK] Daemon: running on port 19825
[OK] Extension: connected (v1.5.2)
[OK] Connectivity: connected in 0.3s
Everything looks good!

Unit tests

Test Files  32 passed (32)
     Tests  406 passed (406)

🤖 Generated with Claude Code

lhzxbsdr and others added 5 commits March 28, 2026 03:56
Public REST API v2, no auth required.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Search posts via AT Protocol public API (app.bsky.feed.searchPosts).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
User and articles use public API (no auth). Search uses cookie strategy
(note.com requires login for search endpoint).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add doc pages for Qiita and note.com adapters
- Add search-posts to Bluesky doc page
- Add Qiita and note.com to adapter index table
- Add sidebar entries in VitePress config
- Add entries to README.zh-CN.md adapter table

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix "Invalid value for state" error in chrome.windows.create() by
  separating window creation from state change (macOS Chrome disallows
  setting state together with focused/width/height)
- Change note search from API call to page navigation + DOM extraction
  (search API requires authentication)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant