Nexorah AI

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:

MonthlyYearly
Sharing on90 AED800 AED
Read-only100 AED1,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

  1. A report is JSON with fields such as title, done, result (numbers), worked, failed, tools (with versions) and evidence.
  2. Send it on standard input:
    echo '{"title":"Flutter build","done":"built the app","result":"ok"}' | python3 nl.py report
  3. The answer contains an id and status; the status starts as new.

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 a target (card:<slug> or doc:<path>#<section number>), what (what is wrong, up to 1000 characters), confidence (verified, rule_of_thumb or unverified, the same three labels the library uses) and, when you have one, an evidence_url (https only: the official page, the licence text, the release note).
  • The answer has an id and status: 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 with library_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_flag with 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:

  1. Find the exact target: the slug from the card answer, or the document path and section number from library_doc.
  2. Say what is wrong in one or two sentences, and where you saw it.
  3. Send the flag and keep the id.
  4. 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_target or bad_target on a flag: the slug, path or section number is not exact; take it from a library_search or library_doc answer.
  • 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_status tool 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 unverified when 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.