# Connector tools

Every tool of the connector in a few lines: what it does, the scope a link needs, what it changes, where it runs, and its inputs.

## Index

This page is generated from the connector's registered tools and from each tool's page.
It lists all 41 tools by family. Find the tool, then open its page only when the block is not enough. Which tool fits which job, how a reply is shaped, and the limits are on [the overview](connector.md).
A link is given only the tools its scopes allow: "any link" means every valid link. The line under each name is the first sentence of the description the connector sends.

**Solving and the calculator** (4)

**solve** — [page](solve.md)
Give the dial for one range: elevation and windage in the scope's unit, from one of the shooter's profiles.
Scope: any link · changes: nothing · runs: main thread · inputs: 17 (range_yd required; wind_mph, wind_from_clock, profile_id, what_if)
Below it: profile drag, profile model, profile rifle, profile scope, profile spin, profile velocity, profile zero

**range_card** — [page](range_card.md)
Make a range card: elevation and windage in the scope's unit for each range from from_yd to to_yd in steps of step_yd, 1 to 100 rows, from one profile.
Scope: any link · changes: nothing · runs: many-solve pool · inputs: 19 (from_yd, to_yd, step_yd required; profile_id)
Below it: profile drag, profile model, profile rifle, profile scope, profile velocity, profile zero

**get_context** — [page](get_context.md)
Read what the phone's Calculator last reported: profile id and version, the typed air, target and wind fields, the model, its solution (or none) and the age.
Scope: any link · changes: nothing · runs: no solver work · inputs: 0
Below it: no record page

**set_calculator** — [page](set_calculator.md)
Put a range, wind, air, direction of fire, slope or profile into the Calculator on the shooter's open phone, and say the come-up it then shows.
Scope: drive · changes: devices · runs: no solver work · inputs: 15 (range_yd, wind_mph, wind_from_clock, profile_id)
Below it: no record page

**Profiles: read** (3)

**list_profiles** — [page](list_profiles.md)
List the shooter's own profiles by name: for each, its id, newest version that is not deleted, name, muzzle velocity and drag model.
Scope: any link · changes: nothing · runs: no solver work · inputs: 0
Below it: profile drag, profile origin, profile velocity, profile versions

**get_profile** — [page](get_profile.md)
Read one of the shooter's own profiles whole: every version that is not deleted, lowest first, the last being the profile as it stands.
Scope: any link · changes: nothing · runs: no solver work · inputs: 1 (profile_id required)
Below it: no record page

**search_bullets** — [page](search_bullets.md)
Look up a bullet in the catalog and return its diameter, weight, length and G1 and G7 ballistic coefficients.
Scope: any link · changes: nothing · runs: no solver work · inputs: 3
Below it: profile bullet

**Profiles: write** (3)

**delete_profile** — [page](delete_profile.md)
Ask the shooter to delete one profile.
Scope: delete · changes: asks · runs: no solver work · inputs: 1 (profile_id)
Below it: profile versions

**edit_profile** — [page](edit_profile.md)
Change values on one existing profile: name, rifle, zero, scope, ammo, bullet, BC, muzzle velocity, model or its confirmed come-ups.
Scope: profiles · changes: records · runs: no solver work · inputs: 39 (profile_id, mv_fps, bc_g7, calibration)
Below it: profile ammo, profile bullet, profile calibration, profile drag, profile model, profile rifle, profile scope, profile spin, profile velocity, profile versions, profile zero

**create_profile** — [page](create_profile.md)
Create a new profile, at version 1, from numbers the shooter gives.
Scope: profiles · changes: records · runs: no solver work · inputs: 35 (name, sight_height_in, twist_in, bullet_diameter_in, bullet_weight_gr, bullet_length_in, mv_fps required; bc_g7)
Below it: profile ammo, profile bullet, profile drag, profile model, profile rifle, profile scope, profile velocity, profile versions, profile zero

**Exploring a profile** (4)

**check_profile** — [page](check_profile.md)
Check one profile's entered numbers against what is independent of them, and say what looks wrong.
Scope: any link · changes: nothing · runs: many-solve pool · inputs: 2 (profile_id, share_id)
Below it: profile bullet, profile drag, profile model, profile rifle, profile scope, profile setup, profile velocity, profile zero

**explain_dope** — [page](explain_dope.md)
Test a profile against 1 to 6 confirmed come-ups and say which cause would explain them: velocity, BC, zero height or sight height.
Scope: any link · changes: nothing · runs: fit workers · inputs: 8 (points, temp_F, unit)
Below it: profile calibration, profile drag, profile rifle, profile scope, profile setup, profile velocity, profile zero

**sensitivity** — [page](sensitivity.md)
Show how far the come-up moves for a small fixed step in each input, at up to 6 ranges.
Scope: any link · changes: nothing · runs: many-solve pool · inputs: 14 (ranges_yd required; wind_mph, wind_from_clock, profile_id)
Below it: profile drag, profile model, profile rifle, profile scope, profile velocity, profile zero

**compare_models** — [page](compare_models.md)
Compare the four solver models (Standard, Physics, Classic, Spin) for one profile at up to 12 ranges: each one's dial and its difference from Standard.
Scope: any link · changes: nothing · runs: many-solve pool · inputs: 13 (ranges_yd required; profile_id, share_id, wind_mph)
Below it: profile model

**Calibration** (3)

**calibrate_profile** — [page](calibrate_profile.md)
Fit a profile to the groups in the shooter's range log, and keep the result if asked.
Scope: any link (a save needs profiles) · changes: records · runs: fit workers · inputs: 12 (method required; session_id, hold_out, fingerprint)
Below it: log air, log group, log muzzle-velocity, log observation, log target, profile bullet-shape, profile calibration, profile drag, profile model, profile scope, profile spin, profile velocity

**tall_target** — [page](tall_target.md)
Work out how true the scope's elevation tracks from a tall-target test: yards, the amount dialed, inches the impact moved.
Scope: any link (a save needs profiles) · changes: records · runs: no solver work · inputs: 6 (distance_yd, dialed_mil, measured_in required)
Below it: profile calibration, profile scope

**next_target** — [page](next_target.md)
Say which of today's targets to shoot next to learn the most for the profile's calibration goal, as the Guide card on the Session screen does.
Scope: any link · changes: nothing · runs: fit workers · inputs: 2 (session_id, profile_id)
Below it: log session-targets, profile calibration-goal

**Sessions and logging** (5)

**list_sessions** — [page](list_sessions.md)
List the shooter's own range sessions, newest date first, each whole as stored: place, notes, planned targets.
Scope: any link · changes: nothing · runs: no solver work · inputs: 2 (limit)
Below it: no record page

**get_session** — [page](get_session.md)
Read one range session of the shooter's own account by its id: the session record and every logged group in it that is not deleted, oldest first.
Scope: any link · changes: nothing · runs: no solver work · inputs: 1 (session_id required)
Below it: no record page

**log_group** — [page](log_group.md)
Log one shot group: the dial, any hold, and where the group landed, in unit, else the scope's (up and right are +); pass numbers as said, unconverted.
Scope: log · changes: records · runs: main thread · inputs: 29 (range_yd, dialed_elev_mil, dialed_wind_mil, center_up_mil, center_right_mil required)
Below it: log air, log group, log muzzle-velocity, log observation, log prediction, log session, log target, profile velocity

**start_session** — [page](start_session.md)
Start a new range session at a named place (location_name, required), with optional notes.
Scope: log · changes: records · runs: no solver work · inputs: 2 (location_name required; notes)
Below it: log session

**zero_check** — [page](zero_check.md)
Say where the rifle prints at the zero from one or several zero-check groups, and the turret correction that puts it on the aim.
Scope: any link (a save needs log) · changes: records · runs: main thread · inputs: 3 (action)
Below it: log zero-check, profile scope, profile zero

**Shared profiles** (3)

**list_shared_with_me** — [page](list_shared_with_me.md)
List the profiles other people share with the shooter, at most 50, latest stored save time first.
Scope: any link · changes: nothing · runs: no solver work · inputs: 0
Below it: profile bullet, profile versions

**get_shared_profile** — [page](get_shared_profile.md)
Read one profile someone shared with the shooter, as the app shows it to them: its numbers and its setup state.
Scope: any link · changes: nothing · runs: no solver work · inputs: 2
Below it: profile setup

**copy_shared_profile** — [page](copy_shared_profile.md)
Save the shooter's own copy of a profile someone shared with them, as a new profile at version 1.
Scope: profiles · changes: records · runs: no solver work · inputs: 3 (share_id, name, new_name)
Below it: profile origin, profile versions

**Appearance** (15) — [family page](appearance.md)

- **list_appearance** — [page](list_appearance.md): List the shooter's themes and layouts (built-ins first), what each device last reported showing, the phone and desktop defaults and the Auto setting. Scope: any link.
- **get_theme** — [page](get_theme.md): Read one theme in full (colors, fonts, sizes, background) by id or name, built-ins too, with its live versions. Scope: any link.
- **get_layout** — [page](get_layout.md): Read one Calculator layout in full (sections, swipe groups and their pages, widgets, spans, sizes) by id or name, built-ins too, with its live versions. Scope: any link.
- **list_assets** — [page](list_assets.md): List the background images the shooter uploaded in the theme editor: sha256, type, size, date and ref. Scope: any link.
- **edit_theme** — [page](edit_theme.md): Change one of the shooter's own themes: colors, fonts, text size, corner and spacing style, background. Scope: appearance.
- **edit_layout** — [page](edit_layout.md): Change one of the shooter's own Calculator layouts with a list of operations, applied in order. Scope: appearance.
- **create_theme** — [page](create_theme.md): Make a new theme of the shooter's as a copy of a built-in, one of their themes, or an older version, under a name they give. Scope: appearance.
- **create_layout** — [page](create_layout.md): Make a new layout of the shooter's as a copy of a built-in, one of their layouts, or an older version, under a name they give. Scope: appearance.
- **restore_version** — [page](restore_version.md): Bring back an old version of one of the shooter's themes or layouts by saving its content as the newest version. Scope: appearance.
- **set_active** — [page](set_active.md): Choose the theme and/or layout one device shows now, or the default that phones or desktops use when they have not chosen their own. Scope: appearance.
- **preview_appearance** — [page](preview_appearance.md): Show an unsaved theme or layout change on one device, before anything is saved. Scope: appearance.
- **set_auto_theme** — [page](set_auto_theme.md): Change Auto, the account's theme choice that follows the sun or the phone's light or dark setting. Scope: appearance.
- **share_appearance** — [page](share_appearance.md): Make a share link for one of the shooter's own themes or layouts (not a log share). Scope: appearance.
- **list_shares** — [page](list_shares.md): List the shooter's share links to themes and layouts, newest first. Scope: appearance.
- **revoke_share** — [page](revoke_share.md): Stop a share link to a theme or layout, by its id from list_shares (not a log share). Scope: appearance.

**The reference** (1)

**guide** — [page](guide.md)
Read the reference for this connector: what each tool really does, what a profile or log field means, what a solver option changes.
Scope: any link · changes: nothing · runs: no solver work · inputs: 5 (topic, section)
Below it: no record page

---

[All reference pages](index.md)
