Academy · guide 6 of 10 · 8 min
Share experiences
Who it is for: subscribers who want the discount, and anyone who wants to know what leaves their machine. What you need: a connected device and an active plan.
What the sharing choice is
Sharing is optional for paid plans. Your sessions can send a short experience report after a test, build or install taught something new. In return you get a discount:
| Monthly | Yearly | |
|---|---|---|
| Sharing on | 90 AED | 800 AED |
| Read-only | 100 AED | 1,000 AED |
Sharing is on by default. Gift plans always share and cannot turn it off.
The one-choice-per-period rule
You choose once per billing period. After you choose (on or off), the choice is locked until the next renewal; asking again in the same period is refused with choice_locked_until_renewal.
Steps: send a report
- A report is JSON with fields such as
title,done,result(numbers),worked,failed,tools(with versions) andevidence. - Send it on standard input:
echo '{"title":"Flutter build","done":"built the app","result":"ok"}' | python3 nl.py report - The answer contains an
idandstatus; the status starts asnew.
What is cleaned on your machine before sending
Cleaning runs locally. It removes or replaces: API keys and tokens, private keys, password-like assignments, secret-looking URL query values, email addresses, phone numbers, IP addresses and personal home paths (/home/<user>, /Users/<user>, C:\Users\<user>). Persian and Arabic text, half-spaces (ZWNJ), version numbers, dates and measurements are left alone. If something that looks like a secret remains, the report is not sent. The reply lists what was cleaned.
Steps: choose read-only mode
python3 nl.py sharing off
Your price becomes 100 AED monthly or 1,000 yearly, and nl.py report then answers sharing_off: nothing is sent. To choose sharing instead: python3 nl.py sharing on. You can also change it in the Sharing section of your account page on the website, under the same once-per-period rule.
Done means: nl.py me shows "sharing" as you chose and the matching price (aed), and, if sharing, a test report returns "status": "new".
When the library is wrong
A card can be stale, a section can contradict a newer release, a licence can change. When your AI notices, it can flag the exact place instead of quietly working around it.
- The tool is
library_flag, with atarget(card:<slug>ordoc:<path>#<section number>),what(what is wrong, up to 1000 characters),confidence(verified,rule_of_thumborunverified, the same three labels the library uses) and, when you have one, anevidence_url(https only: the official page, the licence text, the release note). - The answer has an
idandstatus: new. A flag is an experience report of its own kind: it goes to the librarian's queue, is checked against the primary source, and either fixes the card or is declined. Follow it withlibrary_report_status, like any report. An accepted flag counts toward Contributor like an accepted report. - Flags need sharing on. A read-only account gets
sharing_off(403), because a flag is content that leaves your machine. - One flag per target per day: a second one for the same card on the same day answers
duplicate_flagwith the first flag's id. Wait for the first to be reviewed. Flags have their own daily cap (20 by default), separate from your question limit. - The librarian sees how many different accounts flagged the same target in the last 30 days; independent flags move a card to the front of the queue. So flag what you have seen yourself, with the source, not what you suspect.
Example:
library_flag: target = "card:some-tool", what = "The card says MIT; the LICENSE file in the repository is Apache-2.0 since version 3.0", evidence_url = "https://...", confidence = "verified"
From the terminal (plugin 1.4.0 and later): nl.py flag --target card:<slug> --what "..." --confidence verified --evidence-url https://...; the text is cleaned of emails, phones and keys before it leaves, and exit code 3 means refused for now (read-only account, duplicate, or the daily cap), with the reason on the screen.
Steps:
- Find the exact target: the slug from the card answer, or the document path and section number from
library_doc. - Say what is wrong in one or two sentences, and where you saw it.
- Send the flag and keep the id.
- Until it is reviewed, treat the card as in review (guide 5) and work from the primary source.
Done means: the flag answered status: new, and your AI named it in its remaining-work section.
Troubleshooting
choice_locked_until_renewal: you already chose this period; wait for renewal.gift_plans_always_share: gift plans cannot turn sharing off.sharing_off: you are read-only; turn it on only at renewal.- "still contains something like a secret": remove it from the report and send again.
no_targetorbad_targeton a flag: the slug, path or section number is not exact; take it from alibrary_searchorlibrary_docanswer.duplicate_flag: you already flagged this target today; the answer carries the first flag's id, follow that one.bad_evidence_url: evidence links must start with https.flag_daily: the daily flag cap is reached; send the rest tomorrow.
FAQ
- Is anything sent when I am read-only? No experience content. Question counts are still recorded for your daily limit, security and statistics.
- What do accepted reports give me? Every 10 accepted reports earn 7 free days and a Contributor badge.
- Can I see my report's status? Yes. Ask your AI to use the
library_report_statustool with your report id, or open your account page. - Is a flag anonymous? It is tied to your account so that an accepted flag counts for Contributor; the fix that reaches the library names nobody.
- What if my flag is wrong? The librarian checks the primary source and declines it; the card stays as it is. Say
unverifiedwhen you are not sure, that is what the label is for. - Does a flag cost a question? No. Flags have their own daily cap, outside the question limit.