new-term-radar
신규 AI 용어를 매일 추적, X·Hugging Face·GitHub 등에서 모델·제품·레포 이름을 빠르게 수집
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
An organised inbox and follow-up tracker for LinkedIn outreach. AILI shows every
conversation with one clear next step, tells you who to reply to and who to chase
today, and keeps sends human-clicked and capped so the account stays safe.
Step 4 of 4. Login, a Chrome helper that syncs your real LinkedIn inbox and
delivers the messages you click Send on, AILI inside Claude and ChatGPT, and
LinkedIn posts you can publish or schedule.README 전문 보기 ↗An organised inbox and follow-up tracker for LinkedIn outreach. AILI shows every conversation with one clear next step, tells you who to reply to and who to chase today, and keeps sends human-clicked and capped so the account stays safe.
Step 4 of 4. Login, a Chrome helper that syncs your real LinkedIn inbox and delivers the messages you click Send on, AILI inside Claude and ChatGPT, and LinkedIn posts you can publish or schedule.
| Step | What it adds | State |
|---|---|---|
| 1 | Rail, sidebar, Notion-grey theme, inbox with the next-step engine | Done |
| 2 | Database, people you can add and edit, tags, notes, snooze, manual send and reply logging, People and Today pages | Done |
| 3 | Login, Chrome helper (LinkedIn client adapted from inflow), live inbox sync, sends delivered by the helper, Settings | Done |
| 4 | AILI as a connector in Claude and ChatGPT (summaries, reply drafts, posts), Posts page, official LinkedIn posting and scheduling, articles opened in LinkedIn's editor | Done |
npm install # also generates the Prisma client
npm run db:push # creates prisma/dev.db (SQLite)
npm run db:seed # loads eight sample people so there is something to click
npm run helper:build # bundles the Chrome helper into extension/dist
npm run dev # also syncs the database layout and rebuilds the helper
Open http://localhost:3000 and create your account. Anyone can sign up from
the log in screen; each account has its own separate inbox. Forgot your
password? With RESEND_API_KEY set, Forgot password emails a one-time link
(30 minutes); without it, npm run reset:password -- [email protected] prints
the link.
After sign up comes a full-screen setup of three steps, each moving on by
itself: install the extension (checked once when the page loads; if it is
missing, Install extension then Next, which reloads and checks again; once
found AILI connects it, nothing to paste), log in to LinkedIn (skipped if you
already are), sync. As soon as the
first conversations are in, "You are all set" opens the inbox; the rest keep
importing, shown in the line at the top of the list. Skip for now goes
straight to the app. The Install button opens the Chrome Web Store; set
NEXT_PUBLIC_EXTENSION_URL to the extension's store page once it is published.
The extension runs in Chrome, Edge, Brave, Arc, Opera and Vivaldi on a computer. Safari, Firefox and phones get "Open AILI in Chrome" during setup. Once set up, AILI works in any browser: syncing happens in Chrome, so with Chrome open it stays current; with Chrome closed the top line says when it last synced, and replies wait in the queue until Chrome is open again.
On a Mac, scripts/setup-mac.sh does all of the above in one go.
No .env file is needed for local use. To point at another database, copy
.env.example to .env and change DATABASE_URL. Set AUTH_SECRET to any
long random string when you host it; locally a random one is kept in
prisma/.auth-secret.
Other scripts:
npm run typecheck # generates Next route types, then tsc
npm run lint
npm test # vitest: next-step engine, auth, sync parsing, LinkedIn response parsing
npm run build # helper bundle plus the Next.js production build
npm run db:seed # wipes and reloads the sample data
npm run reset:conversations -- [email protected] --yes # clears one account's people and messages to re-import
npm run reset:conversations -- [email protected] --all --yes # also tags, templates and stages: a fresh account, same login
npm run reset:password -- [email protected] # prints a one-time link to set a new password
# After a reset the helper re-imports by itself: AILI tells it it has none of the history.
Free to start: Vercel runs the app, Turso holds the database (SQLite in the cloud, same schema). Vercel's free Hobby plan is for non-commercial use; move to Pro once AILI earns money.
libsql://...)
and create a token. Or with the CLI: turso db create aili,
turso db show aili --url, turso db tokens create aili.prisma/dev.db:
TURSO_DATABASE_URL=libsql://... TURSO_AUTH_TOKEN=... npm run db:copy # shows what it would copy
TURSO_DATABASE_URL=libsql://... TURSO_AUTH_TOKEN=... npm run db:copy -- --yes # copies it
It creates the tables and copies accounts, people, messages, tags, stages
and templates. It refuses if Turso already has accounts. Skip it to start
empty.TURSO_DATABASE_URL, TURSO_AUTH_TOKEN: from step 1AUTH_SECRET: any long random string (openssl rand -base64 32)APP_URL: the site's address, e.g. https://aili.vercel.app (add it
after the first deploy shows the address, then redeploy)RESEND_API_KEY, RESEND_FROM for password reset emails.
Resend's test sender [email protected] only delivers to your own
Resend email; verify a domain to email anyone.
Deploy. Each build runs db:deploy, which creates or updates the Turso
tables, so schema changes go out with the code.AILI_URL=https://your-address to
.env (or put it in front of the command), run npm run helper:build, and
press the reload arrow on the AILI helper in chrome://extensions. Then open
your hosted AILI and log in; it connects the extension by itself. The
extension talks only to that exact address and localhost, never a wildcard.AILI is an MCP connector: people add it to Claude or ChatGPT and ask things like "summarize my conversation with Rachel", "draft a reply and put it in AILI", or "write a post about onboarding and schedule it for Tuesday 9am". It runs on their own Claude or ChatGPT plan; AILI holds no AI key.
https://your-address/mcp.
LinkedIn posting (once per AILI): posts go out through LinkedIn's official API, which needs a free LinkedIn developer app.
https://your-address/api/linkedin/callback.LINKEDIN_CLIENT_ID and LINKEDIN_CLIENT_SECRET (Secret)
and redeploy. Then each user clicks Connect on the LinkedIn posting row in Settings, Connections. LinkedIn
asks them to reconnect every 60 days; AILI shows when.Scheduled posts timer: set CRON_SECRET in Vercel to a long random
string and redeploy. At https://cron-job.org (free) create a job that calls
https://your-address/api/cron/posts?key=<CRON_SECRET> every minute.
Scheduled posts and first comments then go out within a minute of their
time, with your computer off.
First comment: a post can carry a first comment (a link, say, so the post itself is not shown less for linking out). AILI posts it under the post, as you, a set time after the post goes live: Settings, Sending, First comment (right away, or 1 to 30 minutes after). Claude and ChatGPT can set it too. If LinkedIn refuses the comment, the post stays up and the comment shows "Not posted" with Try again. Without it they still go out, but only while Chrome is open with the extension (it checks in every minute).
Content plan: Content, Plan holds your 30, 60 or 90-day plan, one row per post or article: a day and a topic, plus pillar, goal, hook and notes if you have them. Bring it in from Excel (.xlsx) or CSV, paste rows straight from a sheet, or ask Claude to add them (add_plan_rows); AILI guesses what each column is and you check. A blank template is under •••. Three views: Agenda (each day once, status first, Personal or Company page on every post, the hook in grey, and the next step on the row), Table (like the sheet: pick columns, click a cell to change it, tick rows to skip or delete several) and Calendar. When a plan mixes channels, one tap shows just one. Each row's status comes from its post, so nobody updates a status column: planned, written, scheduled, posted, or missed when its day passes with nothing out. Skip a row to take it out of the count; Mark as posted covers posts put up straight on LinkedIn. Move or swap days from the row or by dragging in the calendar (a scheduled post moves with its row). The Needs you box, and a bar across the app, warn when a row due within the Plan warning (Settings, Sending, 3 days to start with) is not written or not scheduled. Claude reads the plan with get_plan, writes a row with create_post or save_article and its plan_row_id, and changes rows with update_plan_row. Times use the account's time zone: automatic from the browser, or picked in Settings, Account.
Articles: LinkedIn does not let apps publish articles. Claude or ChatGPT saves them in AILI; Open in LinkedIn opens LinkedIn's article editor and the extension fills in the title and text (they are also put on the clipboard in case LinkedIn's editor changes). You publish or schedule it there, then mark it as published in AILI.
Changing the database layout later: edit prisma/schema.prisma, run
npm run db:migration -- short_name to write the SQL into
prisma/migrations, commit it, and the next deploy applies it.
The helper is the bridge to LinkedIn. Without it, AILI still works in manual mode: you copy each message, paste it into LinkedIn, and log replies by hand.
npm run helper:build, then open chrome://extensions, turn on Developer
mode, Load unpacked, choose extension/dist.http://localhost:3000 and the token, press Connect.After a git pull that changes the helper, start AILI with npm run dev
(it rebuilds extension/dist), then press the reload arrow on AILI helper in
chrome://extensions. If an old helper is still loaded, Settings, the inbox
footer and the status dot all say it is out of date. Bump the version in both
extension/manifest.json and src/lib/helper-version.ts when the helper changes.
On first connect the helper imports your history, one inbox page a minute, back to conversations 180 days old. From then on, once a minute while Chrome is open:
AILI itself always says what sync is doing:
The helper never sends anything you did not click. Details and the risk note
are in extension/README.md.
src/lib/next-step.ts is a pure function that reads a person's messages and
returns one of four states. The rules come from the outreach playbook.
| Colour | State | Rule |
|---|---|---|
| Red | Reply needed | They wrote last, or they accepted and you have not messaged |
| Amber | Chase today | You wrote last and follow-up 1 (day 4) or follow-up 2 (day 9) is due, or a snooze ended |
| Violet | Gone quiet | Two follow-ups sent and five more silent days |
| Blue | Waiting | You wrote last and nothing is due yet, the person is snoozed, or you pressed Done |
| Grey | Older | Nothing from either side, and no action by you, for 30 days |
Any reply from the prospect resets the sequence.
src/components/ui)extension/
manifest.json, popup.html, build.mjs
src/background.ts once a minute: deliver outbox, sync inbox, report status
src/popup.ts pairing and status
src/aili.ts calls to the AILI server
src/linkedin/ Voyager client, encoding, parsing (adapted from inflow)
prisma/
schema.prisma Workspace, Person, Stage, Tag, PersonTag, Message, Outbox, Template
seed.ts, seed-data.ts
scripts/setup-mac.sh
src/
proxy.ts sends logged-out visitors to /login
app/
login/ first-run registration and login
(app)/ inbox, people, today, settings, posts (placeholder)
api/helper/ sync, status, outbox routes the helper calls
components/
shell/rail.tsx left icon rail with the Now count badge and helper dot
inbox/ sidebar (views, tags, stages), people list, conversation
pane, details panel, send dialog, log-reply dialog, snooze menu
people/ funnel, people table and bulk bar, import, add/edit dialog, tag picker
settings/ settings page
templates/ template editor, picker, settings list, Message all dialog
ui/ shadcn components
lib/
next-step.ts the follow-up engine
rows.ts sorting shared by inbox, people and today
data.ts database reads for the logged-in workspace
actions.ts server actions (writes), including the send queue
auth.ts passwords and session cookies
helper-sync.ts applies what the helper saw to the database
funnel.ts who reached each stage, rates, the biggest drop
companies.ts Leads by company: matching names, roles, what next
invites.ts connection requests: who needs one, what the helper saw, stats
alerts.ts post alerts: who to ask next, the morning reminder, warm-up
leads.ts who starts as a lead and who starts in Other
csv.ts reads CSV imports, including LinkedIn's Connections export
templates.ts fills {first_name} and the other fields for a person
types.ts Person, Message, Tag, Stage, Account
White page, stone-50 panels, stone-800 text, stone-500 muted text, stone-200 borders, 6px radius, no shadows, one near-black primary button. Colour is used only for the status dot and tag dots. Every send is a human click; there is no auto-send and there will not be one.