Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(settings): support preferred text size / Dynamic Type

Closed
#2,695 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
68/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
ios, typescript
Domain
api, cli, mobile

Research direction

Start at the existing agent-device settings command conventions and the iOS Simulator handling path; trace active-session, --device, and --udid selection plus the structured API/MCP response path. Add read and set behavior for the listed categories, validation, unsupported-target handling, help, documentation, and tests covering parsing, selection, success, invalid input, and unsupported targets.

Written by the indexing model from the issue text.

Description

Problem

agent-device settings does not expose the preferred text-size / Dynamic Type category. This makes accessibility and layout QA less reproducible: an agent can observe unexpectedly large text, but it cannot inspect or restore the simulator's content-size category through the agent-device command surface.

Observed with agent-device 0.21.0 on an iOS simulator. The current workaround is to leave agent-device and call CoreSimulator directly:

xcrun simctl ui <udid> content_size
xcrun simctl ui <udid> content_size large

Driving the Settings app is possible, but it is slower and depends on localized labels and slider coordinates.

Proposed command

Add an iOS-simulator settings helper, for example:

agent-device settings text-size
agent-device settings text-size large
agent-device settings text-size accessibility-extra-large

The no-argument form should return the normalized current category. The setter should accept the categories supported by simctl ui ... content_size:

  • extra-small
  • small
  • medium
  • large
  • extra-large
  • extra-extra-large
  • extra-extra-extra-large
  • accessibility-medium
  • accessibility-large
  • accessibility-extra-large
  • accessibility-extra-extra-large
  • accessibility-extra-extra-extra-large

Exact naming can follow the existing settings-command conventions.

Scope

  • Implement the first slice for iOS Simulator by delegating to simctl ui <device> content_size.
  • Respect the active session or explicit device selection (--device / --udid).
  • Return UNSUPPORTED_OPERATION with a useful message on targets where agent-device cannot set the category.
  • Android font-scale parity can be handled separately because its values and behavior do not map exactly to Apple's categories.

Acceptance criteria

  • The current preferred content-size category can be read through CLI and structured API/MCP responses.
  • A supported category can be set on the selected iOS simulator.
  • The result reports the applied normalized category rather than only command success.
  • Invalid category values fail before mutating simulator state and list the accepted values.
  • Help text and command documentation include the new setting.
  • Tests cover parsing, device selection, success, invalid input, and unsupported-target behavior.
Dominant language
TypeScript
Stars
4.8k
Forks
315
Avg merge
11h 37m
Merged PRs (30d)
556

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from callstack/agent-device

All issues in callstack/agent-device

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.