Трісон — золотистий лабрадор-ретривер із незвичайним покликанням. Його навчили бути поводирем для людей, які не бачать, і він переконаний: його робота значно важливіша за просте виконання команд, адже йому довірене чуже життя. Розумний, гордий і гострий на язик, Трісон сам розповідає свою історію, уважно помічаючи дивні звички, забобони й суперечності людського світу. Особливо йому не подобається, коли людину, яку він супроводжує, називають його «хазяїном». Для собаки-поводиря незряча людина — не безпорадний господар, а друг, якому він допомагає жити безпечно й самостійно.
Трісон уже знає ціну такій дружбі. Його першим підопічним був Іван — добрий літній чоловік, який ставився до пса з любов’ю та повагою. Разом вони долали міські труднощі: нетерплячих водіїв, захаращені тротуари, переповнений транспорт і нерозуміння перехожих. Одного разу на залізничній платформі Трісон провалився в щілину між поїздом і пероном. Іванові за допомогою випадкового перехожого ледве вдалося його витягти. Спогад про цю пригоду, а згодом і про смерть Івана не дає лабрадорові спокою, коли його повертають до школи собак-поводирів. Він залишається чудово підготовленим професіоналом, але сумує за другом і не знає, з ким тепер розділить життя.
Його новим другом стає Саша. В автомобільній аварії загинув батько хлопчика, а сам Саша дістав тяжкі травми очей і втратив зір. Він живе з мамою Світланою та бабусею Єлизаветою. Вони дуже його люблять, проте, намагаючись уберегти від кожної небезпеки, іноді позбавляють самостійності. Саші доводиться виборювати право на звичайні речі: гуляти, пересуватися містом, ухвалювати рішення без безперервного нагляду. Поява Трісона поступово змінює його життя. Навчившись розуміти одне одного, вони стають справжньою командою. Пес запам’ятовує маршрути, стежить за рухом транспорту, оминає перешкоди й веде Сашу вулицями. Хлопчик ласкаво перейменовує поважного Трісона на «Трішу», чим спочатку страшенно його обурює. Друзі навіть вигадують власну мову: короткий гавкіт означає «так», а протяжний — «ні».
Їхня дружба змінює і всю родину. Саша стає впевненішим у собі. Мама вчиться довіряти його самостійності, а обережна бабуся поступово розуміє: Трісон — не домашня іграшка, а собака, що виконує важливу роботу. Саша читає й розповідає псові про шрифт Брайля та історію освіти незрячих людей. Трісон уважно слухає й розмірковує, скільки всього здатні досягти люди з порушеннями зору та як часто саме суспільство створює для них перепони. Буденні випадки перетворюються на моральні випробування: незнайомці відволікають собаку-поводиря, службовці не розуміють його призначення, безвідповідальні водії наражають пішоходів на небезпеку. Через іронічні спостереження Трісона історія говорить про людську гідність, взаємну повагу та право на повноцінне життя.
Одного дня їхня дружба проходить страшне випробування. Під час походу до супермаркету охоронець не дозволяє Трісонові зайти всередину. Саша з бабусею йдуть по покупки, залишивши пса прив’язаним біля стовпа. Цим користуються двоє злочинців: відв’язують Трісона, силоміць затягують його до автомобіля й вивозять, маючи намір продати цінного, спеціально навченого лабрадора. Трісон боїться не стільки за себе, скільки за Сашу, який раптом залишився без своїх «очей». Зустріч на дорозі з працівником дорожньої поліції на мить дарує надію, але той не помічає злочину й дозволяє викрадачам їхати далі.
Трісона замикають у занедбаному сараї й не дають навіть води. Викрадачі обговорюють оголошення про його продаж. Пес не здатен пояснити людям, хто він і де його дім, а дресирування забороняє нападати на людей. Тож йому залишається покладатися на терпіння, кмітливість і рішучість. Він знаходить дощову воду, щоб напитися, і починає рити підкоп під стіною. Після виснажливої праці протискається крізь отвір і тікає. Але навколо все незнайоме, і він не знає, як повернутися додому. Кожна хвилина далеко від Саші здається йому зрадою обов’язку, хоча в розлуці зовсім немає його вини.
Голодний і знесилений Трісон натрапляє на відпочивальників. На відміну від викрадачів, ці незнайомці бачать, що тварині потрібна допомога. Літнє подружжя, Георгій і Надя, забирають його додому, годують і намагаються розшукати родину. Тут безпечно, однак виникає нова проблема: добрі рятівники не відразу розуміють, як терміново робочому собаці-поводирю потрібно повернутися до людини, що від нього залежить. Вони дають Трісонові ще одне ім’я — «Розумник», а він думає лише про Сашу. Тим часом родина хлопчика розшукує зниклого пса; по телебаченню показують оголошення. Трісон бачить повідомлення, та ніяк не може пояснити людям поруч, що розшукують саме його.
До справи долучається поліція, але плутанини стає ще більше. Замість того щоб відвезти Трісона додому, його доправляють до відділку й саджають у камеру. Там він знайомиться з бездомним чоловіком, чия безпорадність перед владою нагадує собаці його власне становище. Поліцейські помилково вважають, що знайшли незрячого господаря пса. Під час поїздки містом Трісон навіть помічає Сашу з бабусею на пішохідному переході, але не може зупинити автомобіль. Зрозумівши, що ця офіційна «допомога» тільки віддаляє його від друга, він знову тікає й шукає знайомі вулиці та орієнтири. На заваді стає ще й зграя безпритульних собак. Подолавши одну перешкоду за іншою, Трісон нарешті знаходить дорогу додому. Саша, який майже втратив надію, зустрічає його зі сльозами й не хоче відпускати ні на крок.
Та випробування не завершуються возз’єднанням. Трісон захворює на запалення легень: у нього гарячка, він мусить ковтати несмачні ліки й лежати без прогулянок. Тепер уже Саша не відходить від беззахисного друга й страшенно боїться його втратити. Така відданість зворушує собаче серце. Коли Трісон одужує і вони знову виходять гуляти, Саша ділиться найдорожчим спогадом. До аварії він одного разу побачив величезну веселку над небом. Понад усе хлопчик мріє побачити її ще раз. Трісон не розуміє, чому це, здавалося б, непотрібне природне явище таке важливе, але відчуває: для Саші веселка уособлює красу й свободу видимого світу, від якого його відділила сліпота. Хлопчик просить Трісона гавкнути тричі, коли з’явиться веселка. Трісон обіцяє. Три гавкоти стають їхнім таємним знаком.
Друзям і далі трапляються доброта й жорстокість. Група підлітків глузує із Саші, не вірить, що він справді незрячий, і насміхається з його собаки. Невдовзі хлопчика терміново забирають до лікарні через гострий апендицит. Залишившись удома, Трісон мучиться, бо не може бути поруч із ним і допомогти; рідні заспокоюють пса, обіцяючи, що Саша скоро повернеться. Вимушена розлука показує, наскільки тісно можуть переплестися долі людини й тварини — не лише завдяки щоденній допомозі, а й завдяки справжній ніжності. Історія знову й знову протиставляє байдужість сторонніх відданості, яка нічого не вимагає натомість.
Після одужання Саші звичайна прогулянка під дощем ставить Трісона перед найскладнішим моральним вибором. Знайома дівчина Ірина розповідає Саші про жінку, до якої після багатьох років сліпоти повернувся зір. Ця історія могла подарувати надію, але Саша сумнівається, що таке диво колись станеться з ним, і гірко плаче. Ірина йде. Дощ не вщухає, а Трісон дивиться на розпач друга. Прагнучи хоч якось його втішити, пес гавкає тричі — хоча на небі немає жодної веселки.
Саша в захваті піднімає обличчя до неба. Поруч зупиняється літній перехожий, і схвильований хлопчик питає, чи справді веселка така гарна. Трісон раптом розуміє: його спроба втішити друга може завдати ще більшого болю. Але незнайомець, здається, здогадується, що зробив пес, і підтверджує, що веселка чудова. Саша повертається додому переконаний, що його вірний друг подарував йому прекрасну мить. Бабуся з вдячністю цілує Трісона. А самого пса мучить совість: перша веселка, яку він «подарував» Саші, була неправдою. Любов змусила його порушити чесність, на якій тримається їхня довіра, і він не може собі цього пробачити.
Попереду ще одне жорстоке випробування. Коли Саші та дорослих немає вдома, кілька хлопчаків знаходять Трісона самого й починають стріляти в нього камінцями з рогаток. Вони ранять йому вухо, лапу та спину. Пес не женеться за мучителями. Натомість притискається до землі, прикриває очі лапами й терпить удари, адже понад усе мусить зберегти зір: без нього він більше не зможе вести Сашу. Коли родина повертається, рідні помічають рани й доглядають пса. Цей випадок оголює страшний парадокс: тварина, навчена захищати людину, сама виявляється беззахисною перед людською жорстокістю. Та, одужавши, Трісон не зрікається свого покликання.
Вирішальний поворот у Сашиній долі стається не завдяки цілеспрямованим пошукам лікування, а через несподіваний порятунок. Біля озера Трісон нарешті має рідкісну нагоду поплавати просто задля задоволення. Раптом він помічає маленьку дівчинку, яка йде під воду. Лабрадор кидається до неї, хапає зубами за волосся, щоб утримати обличчя над поверхнею, і витягує на берег. Люди поряд приводять дитину до тями. Її звати Рада. Для Саші навіть це ім’я відлунює мрією про веселку. Батьки дівчинки, Люба та Борис, приходять подякувати Трісонові й його родині. Звичайна вдячність несподівано приводить до дивовижного збігу обставин.
Дізнавшись, що Саша незрячий, Борис пропонує зв’язатися зі своїм другом Миколою Соболєвим — офтальмохірургом, який виконує складні операції в разі пошкоджень райдужної оболонки та кришталика ока. Ніхто не гарантує успіху, але з’являється шанс повернути хлопчикові зір. Борис домовляється про обстеження. Крихка надія перетворюється на реальний план лікування. Урятувавши Раду від утоплення, Трісон, сам того не знаючи, відкрив шлях до здійснення найбільшої Сашиної мрії.
Можливість дива спричиняє в душі Трісона болісну боротьбу. Найбільше у світі він хоче, щоб Саша знову побачив довколишнє. Та якось його пронизує страшна думка: якщо хлопчик прозріє, собака-поводир йому більше не знадобиться. Жахнувшись власного бажання залишатися незамінним, Трісон судить свій егоїзм так само суворо, як завжди судив людський. Він охоче страждав би сам, аби тільки Саша міг бачити; він не має права бажати, щоб друг залишався залежним від нього. Пес намагається прогнати ганебну думку й усім серцем сподівається на успішну операцію.
Операція минає вдало. Саша повертається додому зрячим. Хлопчик, який раніше пізнавав Трісона лише через дотик до шерсті, тепло його тіла й звук дихання, тепер уперше може подивитися йому в очі. Та здійснення мрії майже відразу затьмарює неминуча обставина: професійний собака-поводир потрібен іншим людям, які досі чекають на допомогу. Представники школи пояснюють, що Трісон має повернутися до служби. Саша не хоче цього приймати, обіймає пса, благає маму дозволити йому залишитися й у розпачі навіть каже, що краще б лишився сліпим, аніж утратив друга.
Світлана не вдає, ніби розлука — це покарання. Вона просить Сашу згадати все, що дав йому Трісон: безпеку, упевненість, свободу й дружбу. Десь інша незряча людина чекає саме на таку допомогу. Якщо Саша залишить Трісона тільки тому, що не здатен попрощатися, хтось інший залишиться сам. Поступово хлопчик розуміє: його любов не може бути важливішою за покликання Трісона. Він просить у собаки пробачення, погоджується на необхідність розлуки й сам вирішує відвести його до школи.
Уся родина приїздить до школи собак-поводирів. Саша востаннє обіймає Трісона й плаче, а пес кладе передні лапи хлопчикові на груди. Трісон не може пояснити, наскільки болісне це прощання і для нього, і що його відданість анітрохи не зменшилася. Замість слів він подає знак, зміст якого до кінця знають лише вони двоє: тричі гавкає.
Саша обертається. У небі сяє справжня веселка. Уперше після аварії він дійсно може її побачити. Хлопчик дивиться на барви, які вважав утраченими назавжди. Але коли повертається до свого вірного друга, Трісона вже відвели.
Фінал завершує не лише шлях Саші до повернення зору, а й моральне дорослішання обох героїв. Пес, який колись подарував другові втішну ілюзію, нарешті дотримав обіцянки. Саша здобув більше, ніж здатність бачити: він зрозумів, що любов — це не володіння, а вдячність іноді вимагає жертви. Трісон розлучається з другом, біля якого найбільше хотів би залишитися, саме тому, що так добре виконав свій обов’язок. Попереду на нього чекає новий шлях поруч із людиною, якій іще потрібні його очі. Веселка більше не є лише Сашиною мрією. Вона стає видимим слідом дружби, яка вміє відпускати.